<!DOCTYPE html>
<html lang="en-US">
    <head>
        <title>POE - portable multitasking and networking framework for any event loop - metacpan.org</title>
        <link rel="preload" as="fetch" href="https://metacpan.org/account/login_status" crossorigin="anonymous" />
        <link href="https://metacpan.org/_assets/b8ccceeed47a0652049703d99326a9cea4933443.css" rel="stylesheet" type="text/css">
        <script src="https://metacpan.org/_assets/6bfedafe2d7caa915b7d84f61b45936818e3242e.js" type="text/javascript" defer></script>
        <link rel="alternate" type="application/rss+xml" title="Recent CPAN Uploads of POE - MetaCPAN" href="https://metacpan.org/dist/POE/releases.rss" />
        <link rel="canonical" href="POE.html" />
        <meta name="description" content="portable multitasking and networking framework for any event loop" />
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5">
        <link rel="shortcut icon" href="https://metacpan.org/static/icons/favicon.ico">
        <link rel="apple-touch-icon" sizes="152x152" href="https://metacpan.org/static/icons/apple-touch-icon.png">
        <link rel="search" href="https://metacpan.org/static/opensearch.xml" type="application/opensearchdescription+xml" title="MetaCPAN">
        <script>
          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

          (function(skey, ga_id){
            ga('create', ga_id, {
              siteSpeedSampleRate : 100,
              storage             : 'none',
              clientId            : localStorage.getItem(skey)
            });
            ga(function(tracker) {
              localStorage.setItem(skey, tracker.get('clientId'));
            });
            ga('send', 'pageview');
          })('ga:clientId', 'UA-27829474-1');
        </script>
<meta name="twitter:card"        content="summary" />
<meta name="twitter:url"         content="https://metacpan.org/pod/POE" />
<meta name="twitter:title"       content="POE" />
<meta name="twitter:description" content="portable multitasking and networking framework for any event loop" />
<meta name="twitter:site"        content="metacpan" />
    </head>
    <body>
        <nav class="navbar navbar-default" role="navigation">
            <div class="header-logo-large hidden-xs">
              <a href="https://metacpan.org/" tabindex="0">
                <svg class="logo" aria-label="MetaCPAN">
                  <use class="logo" href="/static/images/metacpan-logo.svg#logo" />
                </svg>
              </a>
            </div>
            <div class="header-logo-icon visible-xs">
              <a href="https://metacpan.org/">
                <svg class="logo" aria-label="MetaCPAN">
                  <use class="logo" href="/static/images/metacpan-logo.svg#dots" />
                </svg>
              </a>
            </div>
            <ul class="nav navbar-nav menu-items hidden-xs hidden-sm">
              <li><a href="https://metacpan.org/about">About</a></li>
              <li><a href="https://metacpan.org/about/sponsors">Sponsor</a></li>
              <li><a href="https://grep.metacpan.org/">grep::cpan</a></li>
              <li><a href="https://metacpan.org/recent">Recent</a></li>
              <li><a href="https://metacpan.org/about/faq">FAQ</a></li>
              <li><a href="https://metacpan.org/tools">Tools</a></li>
              <li><a href="https://fastapi.metacpan.org/">API</a></li>
            </ul>
            <ul class="nav navbar-nav navbar-right">
                <button type="button" class="searchbar-btn visible-xs visible-sm">
                    <i class="fa fa-search button-fa-icon"></i>
                </button>
                <form action="https://metacpan.org/search" class="searchbar-form visible-md visible-lg search-form form-horizontal">
                   <input type="hidden" name="size" id="metacpan_search-size" value="20">
                  <div class="form-group">
                      <div class="search-group">
                        <i class="fa fa-search"></i>
                        <input type="text" name="q" placeholder="Search the CPAN" size="41" autocorrect="off" autocapitalize="off" spellcheck="false" id="metacpan_search-input" class="form-control" value="">
                      </div>
                  </div>
                </form>
                    <li class="icon-slidepanel visible-xs visible-sm">
                      <button data-toggle="slidepanel" data-target=".slidepanel">
                        <span class="button-fa-icon">
                          <i class="fa fa-bars slidepanel-open"></i>
                          <i class="fa fa-times slidepanel-close"></i>
                        </span>
                      </button>
                    </li>
                <form action="https://metacpan.org/account/logout" method="POST" id="metacpan-logout"></form>
                <li class="dropdown logged_in" style="display: none;">
                    <button type="button" class="dropdown-toggle" data-toggle="dropdown">
                      <i class="fa fa-user button-fa-icon logged-in-icon" aria-hidden="true"></i>
                      <i class="fas fa-chevron-down"></i>
                    </button>
                    <ul class="dropdown-menu">
                        <li><a href="https://metacpan.org/account/identities">Identities</a></li>
                        <li><a href="https://metacpan.org/account/profile">Profile</a></li>
                        <li><a href="https://metacpan.org/account/favorite/list">Favorites</a></li>
                        <li>
                            <a href="POE.html#" type="button" onclick="$('#metacpan-logout').submit(); return false">
                              Logout
                            </a>
                        </li>
                    </ul>
                </li>
                <li class="dropdown logged_out" style="display: none;">
                    <button type="button" class="dropdown-toggle" data-toggle="dropdown">
                      <i class="fa fa-user button-fa-icon" aria-hidden="true"></i>
                      <i class="fas fa-chevron-down"></i>
                    </button>
                    <ul class="dropdown-menu">
                        <li>
                            <a href="https://metacpan.org/login/github">
                                <i class="fab fa-github fa-fw"></i>
                                GitHub
                            </a>
                        </li>
                        <li>
                            <a href="https://metacpan.org/login/twitter">
                                <i class="fab fa-twitter fa-fw"></i>
                                Twitter
                            </a>
                        </li>
                        <li>
                            <a href="https://metacpan.org/login/google">
                                <i class="fab fa-google fa-fw"></i>
                                Google
                            </a>
                        </li>
                    </ul>
                </li>
                <li class="dropdown logged_placeholder">
                    <button>
                      <i class="fa fa-user button-fa-icon" aria-hidden="true"></i>
                    </button>
                </li>
            </ul>
        </nav>
        <div class="page-content ">
          <!--
          <div class="top-notify-banner">
            <i class="fas fa-info-circle"></i>
          </div>
          -->
          <nav class="sidebar">
            <div class="slidepanel">
              <ul class="nav-list ">
    <li class="nav-header no-margin-top">
      <div class="ttip" data-toggle="tooltip" data-placement="bottom" title="The date that this version of POE was released.">
      <span class="relatize">23 Mar 2022 12:47:09 UTC</span>
    </li>
  <li>
    Distribution: <a href="https://metacpan.org/dist/POE">POE</a>
  </li>
  <li>
    Module version: 1.370
  </li>
  <li>
    <a data-keyboard-shortcut="g s" href="https://metacpan.org/dist/POE/source/lib/POE.pm">Source</a>
    (<a href="https://metacpan.org/dist/POE/source/lib/POE.pm?raw=1">raw</a>)
  </li>
  <li>
    <a data-keyboard-shortcut="g b" href="https://metacpan.org/dist/POE/source/lib">Browse</a>
    (<a href="https://metacpan.org/dist/POE/source/lib?raw=1">raw</a>)
  </li>
    <li>
      <a data-keyboard-shortcut="g c" href="https://metacpan.org/dist/POE/changes">Changes</a>
    </li>
    <li>
      <a rel="noopener nofollow" class="nopopup" href="http://poe.perl.org/">Homepage</a>
    </li>
    <li>
      <a class="nopopup" href="https://metacpan.org/dist/POE/contribute">How to Contribute</a>
    </li>
    <li>
        <a rel="noopener nofollow" data-keyboard-shortcut="g r" href="https://github.com/rcaputo/poe">Repository</a>
    </li>
    <li>
      <a rel="noopener nofollow" data-keyboard-shortcut="g i" href="https://rt.cpan.org/Public/Dist/Display.html?Name=POE">Issues</a>
      (16)
    </li>
    <li>
      <a rel="noopener nofollow" href="http://matrix.cpantesters.org/?dist=POE+1.370" title="Matrix">Testers</a>
        <span title="(pass / fail / na)">(<a rel="noopener nofollow" href="https://www.cpantesters.org/distro/P/POE.html?oncpan=1&amp;distmat=1&amp;version=1.370&amp;grade=2" style="color: #090">2474</a> / <a rel="noopener nofollow" href="https://www.cpantesters.org/distro/P/POE.html?oncpan=1&amp;distmat=1&amp;version=1.370&amp;grade=3" style="color: #900">117</a> / <a rel="noopener nofollow" href="https://www.cpantesters.org/distro/P/POE.html?oncpan=1&amp;distmat=1&amp;version=1.370&amp;grade=4">0</a>)</span>
    </li>
    <li>
      <a rel="noopener nofollow" href="http://cpants.cpanauthors.org/release/BINGOS/POE-1.370">Kwalitee</a>
    </li>
    <li>
      <div class="ttip" data-toggle="tooltip" data-placement="bottom" title="The # people with an indexing permission on POE who have released something to CPAN in the last 2 years (i.e. the # people likely able to release critical fixes in a timely manner)">
      Bus factor: 3
      </div>
    </li>
    <li>
      <a rel="noopener nofollow" href="http://cpancover.com/latest/POE-1.370/index.html">% Coverage </a>
    </li>
    <li>
      License: perl_5
    </li>
    <li class="nav-header">Activity</li>
    <li>
<div class="activity-graph">
    <img src="https://metacpan.org/dist/POE/activity.svg?res=month" />
    <div class="comment">24 month</div>
</div>
    </li>
    <li class="nav-header">Tools</li>
    <li>
      <a itemprop="downloadUrl" href="https://cpan.metacpan.org/authors/id/B/BI/BINGOS/POE-1.370.tar.gz">
      Download (<span itemprop="fileSize">365.89KB</span>)</a>
    </li>
    <li>
      <a href="https://explorer.metacpan.org/?url=%2Fmodule%2FBINGOS%2FPOE-1.370%2Flib%2FPOE.pm">
        MetaCPAN Explorer
      </a>
    </li>
    <li>
      <a href="https://metacpan.org/dist/POE/permissions">
        Permissions
      </a>
    </li>
    <li>
      <a href="https://metacpan.org/dist/POE/releases.rss">
        Subscribe to distribution
      </a>
    </li>
    <li>
      <button class="btn btn-link" data-toggle="modal" data-target="#metacpan_install-instructions-dialog">
        Install Instructions
      </button>
    </li>
    <li>
      <form action="https://metacpan.org/search">
        <input type="hidden" name="q" value="dist:POE">
        <input type="search" name="q" placeholder="Search distribution" class="form-control tool-bar-form">
        <input type="submit" style="display: none">
      </form>
    </li>
    <li>
      <form action="https://grep.metacpan.org/search">
        <input type="hidden" name="qd" value="POE">
        <input type="hidden" name="source" value="metacpan">
        <input type="search" name="q" placeholder="grep distribution" class="form-control tool-bar-form">
        <input type="submit" style="display: none">
     </form>
    </li>
    <li class="version-jump">
<select onchange="document.location.href=&#39;/release/&#39;+this.value+&#39;/view/lib/POE.pm&#39;" class="form-control tool-bar-form">
  <option disabled selected>Jump to version</option>
<option
  disabled
  value="BINGOS/POE-1.370"
>1.370
  (BINGOS on 2022-03-23)</option>
<option
  
  value="BINGOS/POE-1.368"
>1.368
  (BINGOS on 2020-02-02)</option>
<option
  
  value="RCAPUTO/POE-1.367"
>1.367
  (RCAPUTO on 2015-06-03)</option>
<optgroup label="BackPAN">'
<option
  
  value="RCAPUTO/POE-1.366"
>1.366
  (RCAPUTO on 2014-11-03)</option>
<option
  
  value="RCAPUTO/POE-1.365"
>1.365
  (RCAPUTO on 2014-10-01)</option>
<option
  
  value="RCAPUTO/POE-1.364"
>1.364
  (RCAPUTO on 2014-07-12)</option>
<option
  
  value="RCAPUTO/POE-1.363"
>1.363
  (RCAPUTO on 2014-07-12)</option>
<option
  
  value="RCAPUTO/POE-1.362"
>1.362
  (RCAPUTO on 2014-07-12)</option>
<option
  
  value="RCAPUTO/POE-1.361"
>1.361
  (RCAPUTO on 2014-07-11)</option>
<option
  
  value="RCAPUTO/POE-1.360"
>1.360
  (RCAPUTO on 2014-07-08)</option>
<option
  
  value="RCAPUTO/POE-1.359"
>1.359
  (RCAPUTO on 2014-07-08)</option>
<option
  
  value="RCAPUTO/POE-1.358"
>1.358
  (RCAPUTO on 2013-12-08)</option>
<option
  
  value="RCAPUTO/POE-1.357"
>1.357
  (RCAPUTO on 2013-12-07)</option>
<option
  
  value="RCAPUTO/POE-1.356"
>1.356
  (RCAPUTO on 2013-08-20)</option>
<option
  
  value="RCAPUTO/POE-1.355"
>1.355
  (RCAPUTO on 2013-08-20)</option>
<option
  
  value="RCAPUTO/POE-1.354"
>1.354
  (RCAPUTO on 2012-05-15)</option>
<option
  
  value="RCAPUTO/POE-1.353"
>1.353
  (RCAPUTO on 2012-05-06)</option>
<option
  
  value="RCAPUTO/POE-1.352"
>1.352
  (RCAPUTO on 2012-03-23)</option>
<option
  
  value="RCAPUTO/POE-1.351"
>1.351
  (RCAPUTO on 2012-03-11)</option>
<option
  
  value="RCAPUTO/POE-1.350"
>1.350
  (RCAPUTO on 2011-12-15)</option>
<option
  
  value="RCAPUTO/POE-1.312"
>1.312
  (RCAPUTO on 2011-07-29)</option>
<option
  
  value="RCAPUTO/POE-1.311"
>1.311
  (RCAPUTO on 2011-05-02)</option>
<option
  
  value="RCAPUTO/POE-1.310"
>1.310
  (RCAPUTO on 2011-04-19)</option>
<option
  
  value="RCAPUTO/POE-1.299"
>1.299
  (RCAPUTO on 2011-02-03)</option>
<option
  
  value="RCAPUTO/POE-1.294_512"
>1.294_512 DEV
  (RCAPUTO on 2011-01-29)</option>
<option
  
  value="RCAPUTO/POE-1.294_314"
>1.294_314 DEV
  (RCAPUTO on 2011-01-29)</option>
<option
  
  value="RCAPUTO/POE-1.294_272"
>1.294_272 DEV
  (RCAPUTO on 2011-01-28)</option>
<option
  
  value="RCAPUTO/POE-1.294"
>1.294
  (RCAPUTO on 2010-11-19)</option>
<option
  
  value="RCAPUTO/POE-1.293"
>1.293
  (RCAPUTO on 2010-09-04)</option>
<option
  
  value="RCAPUTO/POE-1.292"
>1.292
  (RCAPUTO on 2010-08-02)</option>
<option
  
  value="RCAPUTO/POE-1.291"
>1.291
  (RCAPUTO on 2010-07-27)</option>
<option
  
  value="RCAPUTO/POE-1.289"
>1.289
  (RCAPUTO on 2010-04-03)</option>
<option
  
  value="RCAPUTO/POE-1.288"
>1.288
  (RCAPUTO on 2010-04-03)</option>
<option
  
  value="RCAPUTO/POE-1.287"
>1.287
  (RCAPUTO on 2010-02-19)</option>
<option
  
  value="RCAPUTO/POE-1.286"
>1.286
  (RCAPUTO on 2010-02-15)</option>
<option
  
  value="RCAPUTO/POE-1.285"
>1.285
  (RCAPUTO on 2010-02-14)</option>
<option
  
  value="RCAPUTO/POE-1.284"
>1.284
  (RCAPUTO on 2010-01-14)</option>
<option
  
  value="RCAPUTO/POE-1.283"
>1.283
  (RCAPUTO on 2010-01-08)</option>
<option
  
  value="RCAPUTO/POE-1.282"
>1.282
  (RCAPUTO on 2010-01-06)</option>
<option
  
  value="RCAPUTO/POE-1.281"
>1.281
  (RCAPUTO on 2010-01-01)</option>
<option
  
  value="RCAPUTO/POE-1.280"
>1.280
  (RCAPUTO on 2009-10-14)</option>
<option
  
  value="RCAPUTO/POE-1.269_002"
>1.269_002 DEV
  (RCAPUTO on 2009-10-08)</option>
<option
  
  value="RCAPUTO/POE-1.269_001"
>1.269_001 DEV
  (RCAPUTO on 2009-10-07)</option>
<option
  
  value="RCAPUTO/POE-1.269"
>1.269
  (RCAPUTO on 2009-09-23)</option>
<option
  
  value="RCAPUTO/POE-1.268"
>1.268
  (RCAPUTO on 2009-09-16)</option>
<option
  
  value="RCAPUTO/POE-1.267"
>1.267
  (RCAPUTO on 2009-09-07)</option>
<option
  
  value="RCAPUTO/POE-1.266"
>1.266
  (RCAPUTO on 2009-08-29)</option>
<option
  
  value="RCAPUTO/POE-1.020"
>1.020
  (RCAPUTO on 2009-08-28)</option>
<option
  
  value="RCAPUTO/POE-1.007"
>1.007
  (RCAPUTO on 2009-07-28)</option>
<option
  
  value="RCAPUTO/POE-1.006_90"
>1.006_90 DEV
  (RCAPUTO on 2009-07-25)</option>
<option
  
  value="RCAPUTO/POE-1.006"
>1.006
  (RCAPUTO on 2009-05-30)</option>
<option
  
  value="RCAPUTO/POE-1.005"
>1.005
  (RCAPUTO on 2009-04-21)</option>
<option
  
  value="RCAPUTO/POE-1.004"
>1.004
  (RCAPUTO on 2009-03-29)</option>
<option
  
  value="RCAPUTO/POE-1.003_07"
>1.003_07 DEV
  (RCAPUTO on 2009-03-27)</option>
<option
  
  value="RCAPUTO/POE-1.003_06"
>1.003_06 DEV
  (RCAPUTO on 2009-03-27)</option>
<option
  
  value="RCAPUTO/POE-1.003_05"
>1.003_05 DEV
  (RCAPUTO on 2009-03-08)</option>
<option
  
  value="RCAPUTO/POE-1.003_04"
>1.003_04 DEV
  (RCAPUTO on 2009-03-02)</option>
<option
  
  value="RCAPUTO/POE-1.003_03"
>1.003_03 DEV
  (RCAPUTO on 2009-02-28)</option>
<option
  
  value="RCAPUTO/POE-1.003_02"
>1.003_02 DEV
  (RCAPUTO on 2009-02-25)</option>
<option
  
  value="RCAPUTO/POE-1.003_01"
>1.003_01 DEV
  (RCAPUTO on 2009-02-22)</option>
<option
  
  value="RCAPUTO/POE-1.003"
>1.003
  (RCAPUTO on 2008-07-06)</option>
<option
  
  value="RCAPUTO/POE-1.002"
>1.002
  (RCAPUTO on 2008-07-05)</option>
<option
  
  value="RCAPUTO/POE-1.001"
>1.001
  (RCAPUTO on 2008-07-05)</option>
<option
  
  value="RCAPUTO/POE-1.0003"
>1.0003
  (RCAPUTO on 2008-06-26)</option>
<option
  
  value="RCAPUTO/POE-1.0002"
>1.0002
  (RCAPUTO on 2008-05-11)</option>
<option
  
  value="RCAPUTO/POE-1.0001"
>1.0001
  (RCAPUTO on 2008-04-19)</option>
<option
  
  value="RCAPUTO/POE-1.0000"
>1.0000
  (RCAPUTO on 2008-03-25)</option>
<option
  
  value="RCAPUTO/POE-0.9999_03"
>0.9999_03 DEV
  (RCAPUTO on 2008-03-23)</option>
<option
  
  value="RCAPUTO/POE-0.9999_02"
>0.9999_02 DEV
  (RCAPUTO on 2008-03-22)</option>
<option
  
  value="RCAPUTO/POE-0.9999_01"
>0.9999_01 DEV
  (RCAPUTO on 2008-03-14)</option>
<option
  
  value="RCAPUTO/POE-0.9999"
>0.9999
  (RCAPUTO on 2007-07-23)</option>
<option
  
  value="RCAPUTO/POE-0.9989"
>0.9989
  (RCAPUTO on 2007-03-23)</option>
<option
  
  value="RCAPUTO/POE-0.9917"
>0.9917
  (RCAPUTO on 2007-01-03)</option>
<option
  
  value="RCAPUTO/POE-0.9500"
>0.9500
  (RCAPUTO on 2006-11-03)</option>
<option
  
  value="RCAPUTO/POE-0.38"
>0.38
  (RCAPUTO on 2006-09-19)</option>
<option
  
  value="RCAPUTO/POE-0.37"
>0.37
  (RCAPUTO on 2006-09-08)</option>
<option
  
  value="RCAPUTO/POE-0.3601"
>0.3601
  (RCAPUTO on 2006-08-13)</option>
<option
  
  value="RCAPUTO/POE-0.36"
>0.36
  (RCAPUTO on 2006-08-07)</option>
<option
  
  value="RCAPUTO/POE-0.3502"
>0.3502
  (RCAPUTO on 2006-06-16)</option>
<option
  
  value="RCAPUTO/POE-0.3501"
>0.3501
  (RCAPUTO on 2006-05-23)</option>
<option
  
  value="RCAPUTO/POE-0.35"
>0.35
  (RCAPUTO on 2006-05-21)</option>
<option
  
  value="RCAPUTO/POE-0.3401"
>0.3401
  (RCAPUTO on 2006-04-10)</option>
<option
  
  value="RCAPUTO/POE-0.34"
>0.34
  (RCAPUTO on 2006-04-06)</option>
<option
  
  value="RCAPUTO/POE-0.3301"
>0.3301
  (RCAPUTO on 2006-01-29)</option>
<option
  
  value="RCAPUTO/POE-0.33"
>0.33
  (RCAPUTO on 2005-12-22)</option>
<option
  
  value="RCAPUTO/POE-0.3202"
>0.3202
  (RCAPUTO on 2005-09-02)</option>
<option
  
  value="RCAPUTO/POE-0.3201"
>0.3201
  (RCAPUTO on 2005-08-19)</option>
<option
  
  value="RCAPUTO/POE-0.32"
>0.32
  (RCAPUTO on 2005-08-06)</option>
<option
  
  value="RCAPUTO/POE-0.3101"
>0.3101
  (RCAPUTO on 2005-05-20)</option>
<option
  
  value="RCAPUTO/POE-0.31"
>0.31
  (RCAPUTO on 2005-04-18)</option>
<option
  
  value="RCAPUTO/POE-0.3009"
>0.3009
  (RCAPUTO on 2005-01-17)</option>
<option
  
  value="RCAPUTO/POE-0.3007"
>0.3007
  (RCAPUTO on 2005-01-02)</option>
<option
  
  value="RCAPUTO/POE-0.3005"
>0.3005
  (RCAPUTO on 2004-12-30)</option>
<option
  
  value="RCAPUTO/POE-0.3003"
>0.3003
  (RCAPUTO on 2004-11-26)</option>
<option
  
  value="RCAPUTO/POE-0.3002"
>0.3002
  (RCAPUTO on 2004-11-25)</option>
<option
  
  value="RCAPUTO/POE-0.3001"
>0.3001
  (RCAPUTO on 2004-11-25)</option>
<option
  
  value="RCAPUTO/POE-0.30"
>0.30
  (RCAPUTO on 2004-11-25)</option>
<option
  
  value="RCAPUTO/POE-0.29"
>0.29
  (RCAPUTO on 2004-06-04)</option>
<option
  
  value="RCAPUTO/POE-0.28_08"
>0.28_08 DEV
  (RCAPUTO on 2004-05-26)</option>
<option
  
  value="RCAPUTO/POE-0.28_06"
>0.28_06 DEV
  (RCAPUTO on 2004-05-25)</option>
<option
  
  value="RCAPUTO/POE-0.28_04"
>0.28_04 DEV
  (RCAPUTO on 2004-04-27)</option>
<option
  
  value="RCAPUTO/POE-0.2802"
>0.2802
  (RCAPUTO on 2004-02-02)</option>
<option
  
  value="RCAPUTO/POE-0.28"
>0.28
  (RCAPUTO on 2004-01-27)</option>
<option
  
  value="RCAPUTO/POE-0.27"
>0.27
  (RCAPUTO on 2003-09-27)</option>
<option
  
  value="RCAPUTO/POE-0.26"
>0.26
  (RCAPUTO on 2003-05-10)</option>
<option
  
  value="RCAPUTO/POE-0.25"
>0.25
  (RCAPUTO on 2003-02-07)</option>
<option
  
  value="RCAPUTO/POE-0.24"
>0.24
  (RCAPUTO on 2002-12-09)</option>
<option
  
  value="RCAPUTO/POE-0.23"
>0.23
  (RCAPUTO on 2002-09-12)</option>
<option
  
  value="RCAPUTO/POE-0.22"
>0.22
  (RCAPUTO on 2002-07-04)</option>
<option
  
  value="RCAPUTO/POE-0.21"
>0.21
  (RCAPUTO on 2002-06-19)</option>
<option
  
  value="RCAPUTO/POE-0.20"
>0.20
  (RCAPUTO on 2002-06-08)</option>
<option
  
  value="RCAPUTO/POE-0.19"
>0.19
  (RCAPUTO on 2002-03-26)</option>
<option
  
  value="RCAPUTO/POE-0.18"
>0.18
  (RCAPUTO on 2002-01-20)</option>
<option
  
  value="RCAPUTO/POE-0.17"
>0.17
  (RCAPUTO on 2001-08-29)</option>
<option
  
  value="RCAPUTO/POE-0.16"
>0.16
  (RCAPUTO on 2001-08-29)</option>
<option
  
  value="RCAPUTO/POE-0.15"
>0.15
  (RCAPUTO on 2001-07-15)</option>
<option
  
  value="RCAPUTO/POE-0.14"
>0.14
  (RCAPUTO on 2001-04-23)</option>
<option
  
  value="RCAPUTO/POE-0.13"
>0.13
  (RCAPUTO on 2001-04-20)</option>
<option
  
  value="RCAPUTO/POE-0.12"
>0.12
  (RCAPUTO on 2000-11-19)</option>
<option
  
  value="RCAPUTO/POE-0.11"
>0.11
  (RCAPUTO on 2000-07-12)</option>
<option
  
  value="RCAPUTO/POE-0.1"
>0.1
  (RCAPUTO on 2000-03-23)</option>
<option
  
  value="RCAPUTO/POE-0.09"
>0.09
  (RCAPUTO on 2000-01-26)</option>
<option
  
  value="RCAPUTO/POE-0.08"
>0.08
  (RCAPUTO on 1999-11-26)</option>
<option
  
  value="RCAPUTO/POE-0.07"
>0.07
  (RCAPUTO on 1999-06-18)</option>
<option
  
  value="RCAPUTO/POE-0.06"
>0.06
  (RCAPUTO on 1999-02-03)</option>
<option
  
  value="RCAPUTO/POE-0.05"
>0.05
  (RCAPUTO on 1998-12-04)</option>
<option
  
  value="RCAPUTO/POE-0.04"
>0.04
  (RCAPUTO on 1998-11-27)</option>
<option
  
  value="RCAPUTO/POE-0.031"
>0.031
  (RCAPUTO on 1998-11-24)</option>
<option
  
  value="RCAPUTO/POE-0.03"
>0.03
  (RCAPUTO on 1998-11-23)</option>
<option
  
  value="RCAPUTO/POE-0.02"
>0.02
  (RCAPUTO on 1998-11-23)</option>
<option
  
  value="RCAPUTO/POE-0.01"
>0.01
  (RCAPUTO on 1998-10-15)</option>
</optgroup>
</select>
    </li>
    <li class="version-diff">
<select onchange="document.location.href='/release/BINGOS/POE-1.370/diff/' + encodeURIComponent(this.value) + '/lib/POE.pm'
" class="form-control tool-bar-form">
  <option disabled selected>Diff with version</option>
<option
  disabled
  value="BINGOS/POE-1.370"
>1.370
  (BINGOS on 2022-03-23)</option>
<option
  
  value="BINGOS/POE-1.368"
>1.368
  (BINGOS on 2020-02-02)</option>
<option
  
  value="RCAPUTO/POE-1.367"
>1.367
  (RCAPUTO on 2015-06-03)</option>
<optgroup label="BackPAN">'
<option
  
  value="RCAPUTO/POE-1.366"
>1.366
  (RCAPUTO on 2014-11-03)</option>
<option
  
  value="RCAPUTO/POE-1.365"
>1.365
  (RCAPUTO on 2014-10-01)</option>
<option
  
  value="RCAPUTO/POE-1.364"
>1.364
  (RCAPUTO on 2014-07-12)</option>
<option
  
  value="RCAPUTO/POE-1.363"
>1.363
  (RCAPUTO on 2014-07-12)</option>
<option
  
  value="RCAPUTO/POE-1.362"
>1.362
  (RCAPUTO on 2014-07-12)</option>
<option
  
  value="RCAPUTO/POE-1.361"
>1.361
  (RCAPUTO on 2014-07-11)</option>
<option
  
  value="RCAPUTO/POE-1.360"
>1.360
  (RCAPUTO on 2014-07-08)</option>
<option
  
  value="RCAPUTO/POE-1.359"
>1.359
  (RCAPUTO on 2014-07-08)</option>
<option
  
  value="RCAPUTO/POE-1.358"
>1.358
  (RCAPUTO on 2013-12-08)</option>
<option
  
  value="RCAPUTO/POE-1.357"
>1.357
  (RCAPUTO on 2013-12-07)</option>
<option
  
  value="RCAPUTO/POE-1.356"
>1.356
  (RCAPUTO on 2013-08-20)</option>
<option
  
  value="RCAPUTO/POE-1.355"
>1.355
  (RCAPUTO on 2013-08-20)</option>
<option
  
  value="RCAPUTO/POE-1.354"
>1.354
  (RCAPUTO on 2012-05-15)</option>
<option
  
  value="RCAPUTO/POE-1.353"
>1.353
  (RCAPUTO on 2012-05-06)</option>
<option
  
  value="RCAPUTO/POE-1.352"
>1.352
  (RCAPUTO on 2012-03-23)</option>
<option
  
  value="RCAPUTO/POE-1.351"
>1.351
  (RCAPUTO on 2012-03-11)</option>
<option
  
  value="RCAPUTO/POE-1.350"
>1.350
  (RCAPUTO on 2011-12-15)</option>
<option
  
  value="RCAPUTO/POE-1.312"
>1.312
  (RCAPUTO on 2011-07-29)</option>
<option
  
  value="RCAPUTO/POE-1.311"
>1.311
  (RCAPUTO on 2011-05-02)</option>
<option
  
  value="RCAPUTO/POE-1.310"
>1.310
  (RCAPUTO on 2011-04-19)</option>
<option
  
  value="RCAPUTO/POE-1.299"
>1.299
  (RCAPUTO on 2011-02-03)</option>
<option
  
  value="RCAPUTO/POE-1.294_512"
>1.294_512 DEV
  (RCAPUTO on 2011-01-29)</option>
<option
  
  value="RCAPUTO/POE-1.294_314"
>1.294_314 DEV
  (RCAPUTO on 2011-01-29)</option>
<option
  
  value="RCAPUTO/POE-1.294_272"
>1.294_272 DEV
  (RCAPUTO on 2011-01-28)</option>
<option
  
  value="RCAPUTO/POE-1.294"
>1.294
  (RCAPUTO on 2010-11-19)</option>
<option
  
  value="RCAPUTO/POE-1.293"
>1.293
  (RCAPUTO on 2010-09-04)</option>
<option
  
  value="RCAPUTO/POE-1.292"
>1.292
  (RCAPUTO on 2010-08-02)</option>
<option
  
  value="RCAPUTO/POE-1.291"
>1.291
  (RCAPUTO on 2010-07-27)</option>
<option
  
  value="RCAPUTO/POE-1.289"
>1.289
  (RCAPUTO on 2010-04-03)</option>
<option
  
  value="RCAPUTO/POE-1.288"
>1.288
  (RCAPUTO on 2010-04-03)</option>
<option
  
  value="RCAPUTO/POE-1.287"
>1.287
  (RCAPUTO on 2010-02-19)</option>
<option
  
  value="RCAPUTO/POE-1.286"
>1.286
  (RCAPUTO on 2010-02-15)</option>
<option
  
  value="RCAPUTO/POE-1.285"
>1.285
  (RCAPUTO on 2010-02-14)</option>
<option
  
  value="RCAPUTO/POE-1.284"
>1.284
  (RCAPUTO on 2010-01-14)</option>
<option
  
  value="RCAPUTO/POE-1.283"
>1.283
  (RCAPUTO on 2010-01-08)</option>
<option
  
  value="RCAPUTO/POE-1.282"
>1.282
  (RCAPUTO on 2010-01-06)</option>
<option
  
  value="RCAPUTO/POE-1.281"
>1.281
  (RCAPUTO on 2010-01-01)</option>
<option
  
  value="RCAPUTO/POE-1.280"
>1.280
  (RCAPUTO on 2009-10-14)</option>
<option
  
  value="RCAPUTO/POE-1.269_002"
>1.269_002 DEV
  (RCAPUTO on 2009-10-08)</option>
<option
  
  value="RCAPUTO/POE-1.269_001"
>1.269_001 DEV
  (RCAPUTO on 2009-10-07)</option>
<option
  
  value="RCAPUTO/POE-1.269"
>1.269
  (RCAPUTO on 2009-09-23)</option>
<option
  
  value="RCAPUTO/POE-1.268"
>1.268
  (RCAPUTO on 2009-09-16)</option>
<option
  
  value="RCAPUTO/POE-1.267"
>1.267
  (RCAPUTO on 2009-09-07)</option>
<option
  
  value="RCAPUTO/POE-1.266"
>1.266
  (RCAPUTO on 2009-08-29)</option>
<option
  
  value="RCAPUTO/POE-1.020"
>1.020
  (RCAPUTO on 2009-08-28)</option>
<option
  
  value="RCAPUTO/POE-1.007"
>1.007
  (RCAPUTO on 2009-07-28)</option>
<option
  
  value="RCAPUTO/POE-1.006_90"
>1.006_90 DEV
  (RCAPUTO on 2009-07-25)</option>
<option
  
  value="RCAPUTO/POE-1.006"
>1.006
  (RCAPUTO on 2009-05-30)</option>
<option
  
  value="RCAPUTO/POE-1.005"
>1.005
  (RCAPUTO on 2009-04-21)</option>
<option
  
  value="RCAPUTO/POE-1.004"
>1.004
  (RCAPUTO on 2009-03-29)</option>
<option
  
  value="RCAPUTO/POE-1.003_07"
>1.003_07 DEV
  (RCAPUTO on 2009-03-27)</option>
<option
  
  value="RCAPUTO/POE-1.003_06"
>1.003_06 DEV
  (RCAPUTO on 2009-03-27)</option>
<option
  
  value="RCAPUTO/POE-1.003_05"
>1.003_05 DEV
  (RCAPUTO on 2009-03-08)</option>
<option
  
  value="RCAPUTO/POE-1.003_04"
>1.003_04 DEV
  (RCAPUTO on 2009-03-02)</option>
<option
  
  value="RCAPUTO/POE-1.003_03"
>1.003_03 DEV
  (RCAPUTO on 2009-02-28)</option>
<option
  
  value="RCAPUTO/POE-1.003_02"
>1.003_02 DEV
  (RCAPUTO on 2009-02-25)</option>
<option
  
  value="RCAPUTO/POE-1.003_01"
>1.003_01 DEV
  (RCAPUTO on 2009-02-22)</option>
<option
  
  value="RCAPUTO/POE-1.003"
>1.003
  (RCAPUTO on 2008-07-06)</option>
<option
  
  value="RCAPUTO/POE-1.002"
>1.002
  (RCAPUTO on 2008-07-05)</option>
<option
  
  value="RCAPUTO/POE-1.001"
>1.001
  (RCAPUTO on 2008-07-05)</option>
<option
  
  value="RCAPUTO/POE-1.0003"
>1.0003
  (RCAPUTO on 2008-06-26)</option>
<option
  
  value="RCAPUTO/POE-1.0002"
>1.0002
  (RCAPUTO on 2008-05-11)</option>
<option
  
  value="RCAPUTO/POE-1.0001"
>1.0001
  (RCAPUTO on 2008-04-19)</option>
<option
  
  value="RCAPUTO/POE-1.0000"
>1.0000
  (RCAPUTO on 2008-03-25)</option>
<option
  
  value="RCAPUTO/POE-0.9999_03"
>0.9999_03 DEV
  (RCAPUTO on 2008-03-23)</option>
<option
  
  value="RCAPUTO/POE-0.9999_02"
>0.9999_02 DEV
  (RCAPUTO on 2008-03-22)</option>
<option
  
  value="RCAPUTO/POE-0.9999_01"
>0.9999_01 DEV
  (RCAPUTO on 2008-03-14)</option>
<option
  
  value="RCAPUTO/POE-0.9999"
>0.9999
  (RCAPUTO on 2007-07-23)</option>
<option
  
  value="RCAPUTO/POE-0.9989"
>0.9989
  (RCAPUTO on 2007-03-23)</option>
<option
  
  value="RCAPUTO/POE-0.9917"
>0.9917
  (RCAPUTO on 2007-01-03)</option>
<option
  
  value="RCAPUTO/POE-0.9500"
>0.9500
  (RCAPUTO on 2006-11-03)</option>
<option
  
  value="RCAPUTO/POE-0.38"
>0.38
  (RCAPUTO on 2006-09-19)</option>
<option
  
  value="RCAPUTO/POE-0.37"
>0.37
  (RCAPUTO on 2006-09-08)</option>
<option
  
  value="RCAPUTO/POE-0.3601"
>0.3601
  (RCAPUTO on 2006-08-13)</option>
<option
  
  value="RCAPUTO/POE-0.36"
>0.36
  (RCAPUTO on 2006-08-07)</option>
<option
  
  value="RCAPUTO/POE-0.3502"
>0.3502
  (RCAPUTO on 2006-06-16)</option>
<option
  
  value="RCAPUTO/POE-0.3501"
>0.3501
  (RCAPUTO on 2006-05-23)</option>
<option
  
  value="RCAPUTO/POE-0.35"
>0.35
  (RCAPUTO on 2006-05-21)</option>
<option
  
  value="RCAPUTO/POE-0.3401"
>0.3401
  (RCAPUTO on 2006-04-10)</option>
<option
  
  value="RCAPUTO/POE-0.34"
>0.34
  (RCAPUTO on 2006-04-06)</option>
<option
  
  value="RCAPUTO/POE-0.3301"
>0.3301
  (RCAPUTO on 2006-01-29)</option>
<option
  
  value="RCAPUTO/POE-0.33"
>0.33
  (RCAPUTO on 2005-12-22)</option>
<option
  
  value="RCAPUTO/POE-0.3202"
>0.3202
  (RCAPUTO on 2005-09-02)</option>
<option
  
  value="RCAPUTO/POE-0.3201"
>0.3201
  (RCAPUTO on 2005-08-19)</option>
<option
  
  value="RCAPUTO/POE-0.32"
>0.32
  (RCAPUTO on 2005-08-06)</option>
<option
  
  value="RCAPUTO/POE-0.3101"
>0.3101
  (RCAPUTO on 2005-05-20)</option>
<option
  
  value="RCAPUTO/POE-0.31"
>0.31
  (RCAPUTO on 2005-04-18)</option>
<option
  
  value="RCAPUTO/POE-0.3009"
>0.3009
  (RCAPUTO on 2005-01-17)</option>
<option
  
  value="RCAPUTO/POE-0.3007"
>0.3007
  (RCAPUTO on 2005-01-02)</option>
<option
  
  value="RCAPUTO/POE-0.3005"
>0.3005
  (RCAPUTO on 2004-12-30)</option>
<option
  
  value="RCAPUTO/POE-0.3003"
>0.3003
  (RCAPUTO on 2004-11-26)</option>
<option
  
  value="RCAPUTO/POE-0.3002"
>0.3002
  (RCAPUTO on 2004-11-25)</option>
<option
  
  value="RCAPUTO/POE-0.3001"
>0.3001
  (RCAPUTO on 2004-11-25)</option>
<option
  
  value="RCAPUTO/POE-0.30"
>0.30
  (RCAPUTO on 2004-11-25)</option>
<option
  
  value="RCAPUTO/POE-0.29"
>0.29
  (RCAPUTO on 2004-06-04)</option>
<option
  
  value="RCAPUTO/POE-0.28_08"
>0.28_08 DEV
  (RCAPUTO on 2004-05-26)</option>
<option
  
  value="RCAPUTO/POE-0.28_06"
>0.28_06 DEV
  (RCAPUTO on 2004-05-25)</option>
<option
  
  value="RCAPUTO/POE-0.28_04"
>0.28_04 DEV
  (RCAPUTO on 2004-04-27)</option>
<option
  
  value="RCAPUTO/POE-0.2802"
>0.2802
  (RCAPUTO on 2004-02-02)</option>
<option
  
  value="RCAPUTO/POE-0.28"
>0.28
  (RCAPUTO on 2004-01-27)</option>
<option
  
  value="RCAPUTO/POE-0.27"
>0.27
  (RCAPUTO on 2003-09-27)</option>
<option
  
  value="RCAPUTO/POE-0.26"
>0.26
  (RCAPUTO on 2003-05-10)</option>
<option
  
  value="RCAPUTO/POE-0.25"
>0.25
  (RCAPUTO on 2003-02-07)</option>
<option
  
  value="RCAPUTO/POE-0.24"
>0.24
  (RCAPUTO on 2002-12-09)</option>
<option
  
  value="RCAPUTO/POE-0.23"
>0.23
  (RCAPUTO on 2002-09-12)</option>
<option
  
  value="RCAPUTO/POE-0.22"
>0.22
  (RCAPUTO on 2002-07-04)</option>
<option
  
  value="RCAPUTO/POE-0.21"
>0.21
  (RCAPUTO on 2002-06-19)</option>
<option
  
  value="RCAPUTO/POE-0.20"
>0.20
  (RCAPUTO on 2002-06-08)</option>
<option
  
  value="RCAPUTO/POE-0.19"
>0.19
  (RCAPUTO on 2002-03-26)</option>
<option
  
  value="RCAPUTO/POE-0.18"
>0.18
  (RCAPUTO on 2002-01-20)</option>
<option
  
  value="RCAPUTO/POE-0.17"
>0.17
  (RCAPUTO on 2001-08-29)</option>
<option
  
  value="RCAPUTO/POE-0.16"
>0.16
  (RCAPUTO on 2001-08-29)</option>
<option
  
  value="RCAPUTO/POE-0.15"
>0.15
  (RCAPUTO on 2001-07-15)</option>
<option
  
  value="RCAPUTO/POE-0.14"
>0.14
  (RCAPUTO on 2001-04-23)</option>
<option
  
  value="RCAPUTO/POE-0.13"
>0.13
  (RCAPUTO on 2001-04-20)</option>
<option
  
  value="RCAPUTO/POE-0.12"
>0.12
  (RCAPUTO on 2000-11-19)</option>
<option
  
  value="RCAPUTO/POE-0.11"
>0.11
  (RCAPUTO on 2000-07-12)</option>
<option
  
  value="RCAPUTO/POE-0.1"
>0.1
  (RCAPUTO on 2000-03-23)</option>
<option
  
  value="RCAPUTO/POE-0.09"
>0.09
  (RCAPUTO on 2000-01-26)</option>
<option
  
  value="RCAPUTO/POE-0.08"
>0.08
  (RCAPUTO on 1999-11-26)</option>
<option
  
  value="RCAPUTO/POE-0.07"
>0.07
  (RCAPUTO on 1999-06-18)</option>
<option
  
  value="RCAPUTO/POE-0.06"
>0.06
  (RCAPUTO on 1999-02-03)</option>
<option
  
  value="RCAPUTO/POE-0.05"
>0.05
  (RCAPUTO on 1998-12-04)</option>
<option
  
  value="RCAPUTO/POE-0.04"
>0.04
  (RCAPUTO on 1998-11-27)</option>
<option
  
  value="RCAPUTO/POE-0.031"
>0.031
  (RCAPUTO on 1998-11-24)</option>
<option
  
  value="RCAPUTO/POE-0.03"
>0.03
  (RCAPUTO on 1998-11-23)</option>
<option
  
  value="RCAPUTO/POE-0.02"
>0.02
  (RCAPUTO on 1998-11-23)</option>
<option
  
  value="RCAPUTO/POE-0.01"
>0.01
  (RCAPUTO on 1998-10-15)</option>
</optgroup>
</select>
    </li>

    <li>
<ul class="dependencies">
  <li class="nav-header">Dependencies</li>
  <li><a href="https://metacpan.org/pod/Carp" title="Carp" class="ellipsis">Carp</a></li>
  <li><a href="https://metacpan.org/pod/Errno" title="Errno" class="ellipsis">Errno</a></li>
  <li><a href="https://metacpan.org/pod/Exporter" title="Exporter" class="ellipsis">Exporter</a></li>
  <li><a href="https://metacpan.org/pod/File::Spec" title="File::Spec" class="ellipsis">File::Spec</a></li>
  <li><a href="https://metacpan.org/pod/IO" title="IO" class="ellipsis">IO</a></li>
  <li><a href="https://metacpan.org/pod/IO::Handle" title="IO::Handle" class="ellipsis">IO::Handle</a></li>
  <li><a href="https://metacpan.org/pod/IO::Pipely" title="IO::Pipely" class="ellipsis">IO::Pipely</a></li>
  <li><a href="https://metacpan.org/pod/IO::Tty" title="IO::Tty" class="ellipsis">IO::Tty</a></li>
  <li><a href="https://metacpan.org/pod/POE::Test::Loops" title="POE::Test::Loops" class="ellipsis">POE::Test::Loops</a></li>
  <li><a href="https://metacpan.org/pod/POSIX" title="POSIX" class="ellipsis">POSIX</a></li>
  <li><a href="https://metacpan.org/pod/Socket" title="Socket" class="ellipsis">Socket</a></li>
  <li><a href="https://metacpan.org/pod/Storable" title="Storable" class="ellipsis">Storable</a></li>
  <li><a href="https://metacpan.org/pod/Test::Harness" title="Test::Harness" class="ellipsis">Test::Harness</a></li>
  <li><a href="https://metacpan.org/pod/Time::HiRes" title="Time::HiRes" class="ellipsis">Time::HiRes</a></li>
  <li><i class="ttip" title="dynamic_config enabled">and possibly others</i></li>
  <li>
    <hr>
  </li>
  <li>
    <a href="https://metacpan.org/module/POE/requires">Reverse dependencies</a>
  </li>
  <li>
    <a href="http://deps.cpantesters.org/?module=POE">CPAN Testers List</a>
  </li>
  <li>
    <a href="https://cpandeps.grinnz.com/?dist=POE">Dependency graph</a>
  </li>
</ul>
    </li>
    <li class="nav-header">Permalinks</li>
    <li>
      <a href="https://metacpan.org/release/BINGOS/POE-1.370/view/lib/POE.pm">This version</a>
    </li>
    <li>
      <a href="POE.html">Latest version</a>
    </li>
    <li>
<div class="plussers">
<div class="nav-header">++ed by:</div>
<div>
<a class="display-all" href="https://metacpan.org/author/CFEDDE"><img src="https://www.gravatar.com/avatar/bcb1ad78212a8e822e61dcb451708a5c?d=identicon&amp;s=20" title="CFEDDE" alt="CFEDDE"></a>
<a class="display-all" href="https://metacpan.org/author/DELON"><img src="https://www.gravatar.com/avatar/8a316157de5eaa39f351b1725c4641d0?d=identicon&amp;s=20" title="DELON" alt="DELON"></a>
<a class="display-all" href="https://metacpan.org/author/KEEDI"><img src="https://www.gravatar.com/avatar/95f905a7a4ccc573c711e9d264c0fde8?d=identicon&amp;s=20" title="KEEDI" alt="KEEDI"></a>
<a class="display-all" href="https://metacpan.org/author/GETTY"><img src="https://www.gravatar.com/avatar/d374f794bb2f39232c29d0b376b9dcc4?d=identicon&amp;s=20" title="GETTY" alt="GETTY"></a>
<a class="display-all" href="https://metacpan.org/author/PINGAN"><img src="https://www.gravatar.com/avatar/a02222e5e0e4fd24d52fc29a08ac6bcb?d=identicon&amp;s=20" title="PINGAN" alt="PINGAN"></a>
</div>
<!-- Display counts of plussers-->
<div>
    <a href="https://metacpan.org/dist/POE/plussers">24 PAUSE users</a>
</div>
<div>
    29 non-PAUSE users
</div>
</div>
    </li>
    <li>
<div id="metacpan_contributors">
  <div>
    <button class="btn-link"
      onclick="$(this).hide(); $('#metacpan_contributors ul').slideDown(); return false;"
    >and 1 contributors</button>
  </div>
  <ul style="display: none">
    <li class="contributor"
      data-cpan-author="RCAPUTO"
      data-contrib-email="rcaputo@cpan.org"
    >
      <a href="https://metacpan.org/author/RCAPUTO" class="cpan-author">
      <img class="gravatar" width="20" height="20" src="https://www.gravatar.com/avatar/3d4f61dae367905f646713ee2a0b65c5?d=identicon&amp;s=20" />
      Rocco Caputo
      </a>
    </li>
  </ul>
</div>
    </li>
              </ul>
            </div>
          </nav>
          <div class="content-navigation">
<div class="breadcrumbs">
  <span>
    <a data-keyboard-shortcut="g a" rel="author" href="https://metacpan.org/author/BINGOS" class="author-name">Chris Williams</a>
  </span>
  <span>&nbsp;/&nbsp;</span>
  <div class="release dist-release status-latest maturity-released">
    <span class="dropdown"><b class="caret"></b></span>
<select onchange="document.location.href=&#39;/release/&#39;+this.value+&#39;/view/lib/POE.pm&#39;" class="">
<option
  selected
  value="BINGOS/POE-1.370"
>1.370
  (BINGOS on 2022-03-23)</option>
<option
  
  value="BINGOS/POE-1.368"
>1.368
  (BINGOS on 2020-02-02)</option>
<option
  
  value="RCAPUTO/POE-1.367"
>1.367
  (RCAPUTO on 2015-06-03)</option>
<optgroup label="BackPAN">'
<option
  
  value="RCAPUTO/POE-1.366"
>1.366
  (RCAPUTO on 2014-11-03)</option>
<option
  
  value="RCAPUTO/POE-1.365"
>1.365
  (RCAPUTO on 2014-10-01)</option>
<option
  
  value="RCAPUTO/POE-1.364"
>1.364
  (RCAPUTO on 2014-07-12)</option>
<option
  
  value="RCAPUTO/POE-1.363"
>1.363
  (RCAPUTO on 2014-07-12)</option>
<option
  
  value="RCAPUTO/POE-1.362"
>1.362
  (RCAPUTO on 2014-07-12)</option>
<option
  
  value="RCAPUTO/POE-1.361"
>1.361
  (RCAPUTO on 2014-07-11)</option>
<option
  
  value="RCAPUTO/POE-1.360"
>1.360
  (RCAPUTO on 2014-07-08)</option>
<option
  
  value="RCAPUTO/POE-1.359"
>1.359
  (RCAPUTO on 2014-07-08)</option>
<option
  
  value="RCAPUTO/POE-1.358"
>1.358
  (RCAPUTO on 2013-12-08)</option>
<option
  
  value="RCAPUTO/POE-1.357"
>1.357
  (RCAPUTO on 2013-12-07)</option>
<option
  
  value="RCAPUTO/POE-1.356"
>1.356
  (RCAPUTO on 2013-08-20)</option>
<option
  
  value="RCAPUTO/POE-1.355"
>1.355
  (RCAPUTO on 2013-08-20)</option>
<option
  
  value="RCAPUTO/POE-1.354"
>1.354
  (RCAPUTO on 2012-05-15)</option>
<option
  
  value="RCAPUTO/POE-1.353"
>1.353
  (RCAPUTO on 2012-05-06)</option>
<option
  
  value="RCAPUTO/POE-1.352"
>1.352
  (RCAPUTO on 2012-03-23)</option>
<option
  
  value="RCAPUTO/POE-1.351"
>1.351
  (RCAPUTO on 2012-03-11)</option>
<option
  
  value="RCAPUTO/POE-1.350"
>1.350
  (RCAPUTO on 2011-12-15)</option>
<option
  
  value="RCAPUTO/POE-1.312"
>1.312
  (RCAPUTO on 2011-07-29)</option>
<option
  
  value="RCAPUTO/POE-1.311"
>1.311
  (RCAPUTO on 2011-05-02)</option>
<option
  
  value="RCAPUTO/POE-1.310"
>1.310
  (RCAPUTO on 2011-04-19)</option>
<option
  
  value="RCAPUTO/POE-1.299"
>1.299
  (RCAPUTO on 2011-02-03)</option>
<option
  
  value="RCAPUTO/POE-1.294_512"
>1.294_512 DEV
  (RCAPUTO on 2011-01-29)</option>
<option
  
  value="RCAPUTO/POE-1.294_314"
>1.294_314 DEV
  (RCAPUTO on 2011-01-29)</option>
<option
  
  value="RCAPUTO/POE-1.294_272"
>1.294_272 DEV
  (RCAPUTO on 2011-01-28)</option>
<option
  
  value="RCAPUTO/POE-1.294"
>1.294
  (RCAPUTO on 2010-11-19)</option>
<option
  
  value="RCAPUTO/POE-1.293"
>1.293
  (RCAPUTO on 2010-09-04)</option>
<option
  
  value="RCAPUTO/POE-1.292"
>1.292
  (RCAPUTO on 2010-08-02)</option>
<option
  
  value="RCAPUTO/POE-1.291"
>1.291
  (RCAPUTO on 2010-07-27)</option>
<option
  
  value="RCAPUTO/POE-1.289"
>1.289
  (RCAPUTO on 2010-04-03)</option>
<option
  
  value="RCAPUTO/POE-1.288"
>1.288
  (RCAPUTO on 2010-04-03)</option>
<option
  
  value="RCAPUTO/POE-1.287"
>1.287
  (RCAPUTO on 2010-02-19)</option>
<option
  
  value="RCAPUTO/POE-1.286"
>1.286
  (RCAPUTO on 2010-02-15)</option>
<option
  
  value="RCAPUTO/POE-1.285"
>1.285
  (RCAPUTO on 2010-02-14)</option>
<option
  
  value="RCAPUTO/POE-1.284"
>1.284
  (RCAPUTO on 2010-01-14)</option>
<option
  
  value="RCAPUTO/POE-1.283"
>1.283
  (RCAPUTO on 2010-01-08)</option>
<option
  
  value="RCAPUTO/POE-1.282"
>1.282
  (RCAPUTO on 2010-01-06)</option>
<option
  
  value="RCAPUTO/POE-1.281"
>1.281
  (RCAPUTO on 2010-01-01)</option>
<option
  
  value="RCAPUTO/POE-1.280"
>1.280
  (RCAPUTO on 2009-10-14)</option>
<option
  
  value="RCAPUTO/POE-1.269_002"
>1.269_002 DEV
  (RCAPUTO on 2009-10-08)</option>
<option
  
  value="RCAPUTO/POE-1.269_001"
>1.269_001 DEV
  (RCAPUTO on 2009-10-07)</option>
<option
  
  value="RCAPUTO/POE-1.269"
>1.269
  (RCAPUTO on 2009-09-23)</option>
<option
  
  value="RCAPUTO/POE-1.268"
>1.268
  (RCAPUTO on 2009-09-16)</option>
<option
  
  value="RCAPUTO/POE-1.267"
>1.267
  (RCAPUTO on 2009-09-07)</option>
<option
  
  value="RCAPUTO/POE-1.266"
>1.266
  (RCAPUTO on 2009-08-29)</option>
<option
  
  value="RCAPUTO/POE-1.020"
>1.020
  (RCAPUTO on 2009-08-28)</option>
<option
  
  value="RCAPUTO/POE-1.007"
>1.007
  (RCAPUTO on 2009-07-28)</option>
<option
  
  value="RCAPUTO/POE-1.006_90"
>1.006_90 DEV
  (RCAPUTO on 2009-07-25)</option>
<option
  
  value="RCAPUTO/POE-1.006"
>1.006
  (RCAPUTO on 2009-05-30)</option>
<option
  
  value="RCAPUTO/POE-1.005"
>1.005
  (RCAPUTO on 2009-04-21)</option>
<option
  
  value="RCAPUTO/POE-1.004"
>1.004
  (RCAPUTO on 2009-03-29)</option>
<option
  
  value="RCAPUTO/POE-1.003_07"
>1.003_07 DEV
  (RCAPUTO on 2009-03-27)</option>
<option
  
  value="RCAPUTO/POE-1.003_06"
>1.003_06 DEV
  (RCAPUTO on 2009-03-27)</option>
<option
  
  value="RCAPUTO/POE-1.003_05"
>1.003_05 DEV
  (RCAPUTO on 2009-03-08)</option>
<option
  
  value="RCAPUTO/POE-1.003_04"
>1.003_04 DEV
  (RCAPUTO on 2009-03-02)</option>
<option
  
  value="RCAPUTO/POE-1.003_03"
>1.003_03 DEV
  (RCAPUTO on 2009-02-28)</option>
<option
  
  value="RCAPUTO/POE-1.003_02"
>1.003_02 DEV
  (RCAPUTO on 2009-02-25)</option>
<option
  
  value="RCAPUTO/POE-1.003_01"
>1.003_01 DEV
  (RCAPUTO on 2009-02-22)</option>
<option
  
  value="RCAPUTO/POE-1.003"
>1.003
  (RCAPUTO on 2008-07-06)</option>
<option
  
  value="RCAPUTO/POE-1.002"
>1.002
  (RCAPUTO on 2008-07-05)</option>
<option
  
  value="RCAPUTO/POE-1.001"
>1.001
  (RCAPUTO on 2008-07-05)</option>
<option
  
  value="RCAPUTO/POE-1.0003"
>1.0003
  (RCAPUTO on 2008-06-26)</option>
<option
  
  value="RCAPUTO/POE-1.0002"
>1.0002
  (RCAPUTO on 2008-05-11)</option>
<option
  
  value="RCAPUTO/POE-1.0001"
>1.0001
  (RCAPUTO on 2008-04-19)</option>
<option
  
  value="RCAPUTO/POE-1.0000"
>1.0000
  (RCAPUTO on 2008-03-25)</option>
<option
  
  value="RCAPUTO/POE-0.9999_03"
>0.9999_03 DEV
  (RCAPUTO on 2008-03-23)</option>
<option
  
  value="RCAPUTO/POE-0.9999_02"
>0.9999_02 DEV
  (RCAPUTO on 2008-03-22)</option>
<option
  
  value="RCAPUTO/POE-0.9999_01"
>0.9999_01 DEV
  (RCAPUTO on 2008-03-14)</option>
<option
  
  value="RCAPUTO/POE-0.9999"
>0.9999
  (RCAPUTO on 2007-07-23)</option>
<option
  
  value="RCAPUTO/POE-0.9989"
>0.9989
  (RCAPUTO on 2007-03-23)</option>
<option
  
  value="RCAPUTO/POE-0.9917"
>0.9917
  (RCAPUTO on 2007-01-03)</option>
<option
  
  value="RCAPUTO/POE-0.9500"
>0.9500
  (RCAPUTO on 2006-11-03)</option>
<option
  
  value="RCAPUTO/POE-0.38"
>0.38
  (RCAPUTO on 2006-09-19)</option>
<option
  
  value="RCAPUTO/POE-0.37"
>0.37
  (RCAPUTO on 2006-09-08)</option>
<option
  
  value="RCAPUTO/POE-0.3601"
>0.3601
  (RCAPUTO on 2006-08-13)</option>
<option
  
  value="RCAPUTO/POE-0.36"
>0.36
  (RCAPUTO on 2006-08-07)</option>
<option
  
  value="RCAPUTO/POE-0.3502"
>0.3502
  (RCAPUTO on 2006-06-16)</option>
<option
  
  value="RCAPUTO/POE-0.3501"
>0.3501
  (RCAPUTO on 2006-05-23)</option>
<option
  
  value="RCAPUTO/POE-0.35"
>0.35
  (RCAPUTO on 2006-05-21)</option>
<option
  
  value="RCAPUTO/POE-0.3401"
>0.3401
  (RCAPUTO on 2006-04-10)</option>
<option
  
  value="RCAPUTO/POE-0.34"
>0.34
  (RCAPUTO on 2006-04-06)</option>
<option
  
  value="RCAPUTO/POE-0.3301"
>0.3301
  (RCAPUTO on 2006-01-29)</option>
<option
  
  value="RCAPUTO/POE-0.33"
>0.33
  (RCAPUTO on 2005-12-22)</option>
<option
  
  value="RCAPUTO/POE-0.3202"
>0.3202
  (RCAPUTO on 2005-09-02)</option>
<option
  
  value="RCAPUTO/POE-0.3201"
>0.3201
  (RCAPUTO on 2005-08-19)</option>
<option
  
  value="RCAPUTO/POE-0.32"
>0.32
  (RCAPUTO on 2005-08-06)</option>
<option
  
  value="RCAPUTO/POE-0.3101"
>0.3101
  (RCAPUTO on 2005-05-20)</option>
<option
  
  value="RCAPUTO/POE-0.31"
>0.31
  (RCAPUTO on 2005-04-18)</option>
<option
  
  value="RCAPUTO/POE-0.3009"
>0.3009
  (RCAPUTO on 2005-01-17)</option>
<option
  
  value="RCAPUTO/POE-0.3007"
>0.3007
  (RCAPUTO on 2005-01-02)</option>
<option
  
  value="RCAPUTO/POE-0.3005"
>0.3005
  (RCAPUTO on 2004-12-30)</option>
<option
  
  value="RCAPUTO/POE-0.3003"
>0.3003
  (RCAPUTO on 2004-11-26)</option>
<option
  
  value="RCAPUTO/POE-0.3002"
>0.3002
  (RCAPUTO on 2004-11-25)</option>
<option
  
  value="RCAPUTO/POE-0.3001"
>0.3001
  (RCAPUTO on 2004-11-25)</option>
<option
  
  value="RCAPUTO/POE-0.30"
>0.30
  (RCAPUTO on 2004-11-25)</option>
<option
  
  value="RCAPUTO/POE-0.29"
>0.29
  (RCAPUTO on 2004-06-04)</option>
<option
  
  value="RCAPUTO/POE-0.28_08"
>0.28_08 DEV
  (RCAPUTO on 2004-05-26)</option>
<option
  
  value="RCAPUTO/POE-0.28_06"
>0.28_06 DEV
  (RCAPUTO on 2004-05-25)</option>
<option
  
  value="RCAPUTO/POE-0.28_04"
>0.28_04 DEV
  (RCAPUTO on 2004-04-27)</option>
<option
  
  value="RCAPUTO/POE-0.2802"
>0.2802
  (RCAPUTO on 2004-02-02)</option>
<option
  
  value="RCAPUTO/POE-0.28"
>0.28
  (RCAPUTO on 2004-01-27)</option>
<option
  
  value="RCAPUTO/POE-0.27"
>0.27
  (RCAPUTO on 2003-09-27)</option>
<option
  
  value="RCAPUTO/POE-0.26"
>0.26
  (RCAPUTO on 2003-05-10)</option>
<option
  
  value="RCAPUTO/POE-0.25"
>0.25
  (RCAPUTO on 2003-02-07)</option>
<option
  
  value="RCAPUTO/POE-0.24"
>0.24
  (RCAPUTO on 2002-12-09)</option>
<option
  
  value="RCAPUTO/POE-0.23"
>0.23
  (RCAPUTO on 2002-09-12)</option>
<option
  
  value="RCAPUTO/POE-0.22"
>0.22
  (RCAPUTO on 2002-07-04)</option>
<option
  
  value="RCAPUTO/POE-0.21"
>0.21
  (RCAPUTO on 2002-06-19)</option>
<option
  
  value="RCAPUTO/POE-0.20"
>0.20
  (RCAPUTO on 2002-06-08)</option>
<option
  
  value="RCAPUTO/POE-0.19"
>0.19
  (RCAPUTO on 2002-03-26)</option>
<option
  
  value="RCAPUTO/POE-0.18"
>0.18
  (RCAPUTO on 2002-01-20)</option>
<option
  
  value="RCAPUTO/POE-0.17"
>0.17
  (RCAPUTO on 2001-08-29)</option>
<option
  
  value="RCAPUTO/POE-0.16"
>0.16
  (RCAPUTO on 2001-08-29)</option>
<option
  
  value="RCAPUTO/POE-0.15"
>0.15
  (RCAPUTO on 2001-07-15)</option>
<option
  
  value="RCAPUTO/POE-0.14"
>0.14
  (RCAPUTO on 2001-04-23)</option>
<option
  
  value="RCAPUTO/POE-0.13"
>0.13
  (RCAPUTO on 2001-04-20)</option>
<option
  
  value="RCAPUTO/POE-0.12"
>0.12
  (RCAPUTO on 2000-11-19)</option>
<option
  
  value="RCAPUTO/POE-0.11"
>0.11
  (RCAPUTO on 2000-07-12)</option>
<option
  
  value="RCAPUTO/POE-0.1"
>0.1
  (RCAPUTO on 2000-03-23)</option>
<option
  
  value="RCAPUTO/POE-0.09"
>0.09
  (RCAPUTO on 2000-01-26)</option>
<option
  
  value="RCAPUTO/POE-0.08"
>0.08
  (RCAPUTO on 1999-11-26)</option>
<option
  
  value="RCAPUTO/POE-0.07"
>0.07
  (RCAPUTO on 1999-06-18)</option>
<option
  
  value="RCAPUTO/POE-0.06"
>0.06
  (RCAPUTO on 1999-02-03)</option>
<option
  
  value="RCAPUTO/POE-0.05"
>0.05
  (RCAPUTO on 1998-12-04)</option>
<option
  
  value="RCAPUTO/POE-0.04"
>0.04
  (RCAPUTO on 1998-11-27)</option>
<option
  
  value="RCAPUTO/POE-0.031"
>0.031
  (RCAPUTO on 1998-11-24)</option>
<option
  
  value="RCAPUTO/POE-0.03"
>0.03
  (RCAPUTO on 1998-11-23)</option>
<option
  
  value="RCAPUTO/POE-0.02"
>0.02
  (RCAPUTO on 1998-11-23)</option>
<option
  
  value="RCAPUTO/POE-0.01"
>0.01
  (RCAPUTO on 1998-10-15)</option>
</optgroup>
</select>
    <a data-keyboard-shortcut="g d" class="release-name" href="https://metacpan.org/dist/POE">POE-1.370</a>
  </div>
<span class="river-gauge-gauge">
  <svg width="24px"
       height="15px"
       version="1.1"
       xmlns="http://www.w3.org/2000/svg"
       xmlns:xlink="http://www.w3.org/1999/xlink">

    <g>
      <title>        River stage three &#10;
          • 401 direct dependents &#10;          • 538 total dependents
      </title>

      <rect x="0"  y="0" width="4" height="15" fill="#7ea3f2" />
      <rect x="5"  y="0" width="4" height="15" fill="#7ea3f2" />
      <rect x="10"  y="0" width="4" height="15" fill="#7ea3f2" />
      <rect x="15"  y="0" width="4" height="15" fill="#e4e2e2" />
      <rect x="20"  y="0" width="4" height="15" fill="#e4e2e2" />
    </g>
  </svg>

</span>
<div id="POE-fav" class="logged_in">
<form action="https://metacpan.org/account/favorite/add" style="display: inline" onsubmit="return favDistribution(this)">
    <input type="hidden" name="remove" value="0">
    <input type="hidden" name="release" value="POE-1.370">
    <input type="hidden" name="author" value="BINGOS">
    <input type="hidden" name="distribution" value="POE">
    <button type="submit" class="favorite highlight"><span>53</span> ++</button>
</form>
</div>
<div class="logged_out">
<a href="POE.html" onclick="alert('Please sign in to add favorites'); return false" class="favorite highlight">
<span>53</span> ++</a>
</div>
   / <span>POE</span>
</div>
          </div>
          <main class="content">


<nav class="toc">
  <div class="toc-header"><strong>Contents</strong></div>
<ul>
  <li><a href="POE.html#NAME">NAME</a></li>
  <li><a href="POE.html#SYNOPSIS">SYNOPSIS</a></li>
  <li><a href="POE.html#DESCRIPTION">DESCRIPTION</a>
    <ul>
      <li><a href="POE.html#Layer-1:-Kernel-and-Sessions">Layer 1: Kernel and Sessions</a></li>
      <li><a href="POE.html#Layer-2:-Wheels,-Filters,-and-Drivers">Layer 2: Wheels, Filters, and Drivers</a></li>
      <li><a href="POE.html#Layer-3:-Components">Layer 3: Components</a></li>
      <li><a href="POE.html#Layer-4-and-Beyond:-Frameworks-and-Object-Metaphors">Layer 4 and Beyond: Frameworks and Object Metaphors</a></li>
      <li><a href="POE.html#Layer-0:-POE&#39;s-Internals">Layer 0: POE&#39;s Internals</a></li>
    </ul>
  </li>
  <li><a href="POE.html#DOCUMENTATION-ROADMAP">DOCUMENTATION ROADMAP</a>
    <ul>
      <li><a href="POE.html#Basic-Features">Basic Features</a></li>
      <li><a href="POE.html#Basic-Usage">Basic Usage</a></li>
      <li><a href="POE.html#@_%5BKERNEL,-HEAP,-etc.%5D">@_[KERNEL, HEAP, etc.]</a></li>
      <li><a href="POE.html#Base-Classes-Document-Common-Features">Base Classes Document Common Features</a></li>
      <li><a href="POE.html#Helper-Classes">Helper Classes</a></li>
      <li><a href="POE.html#Event-Loop-Bridges">Event Loop Bridges</a></li>
      <li><a href="POE.html#POE::Queue-and-POE::Queue::Array">POE::Queue and POE::Queue::Array</a></li>
      <li><a href="POE.html#This-Section-Isn&#39;t-Complete">This Section Isn&#39;t Complete</a></li>
      <li><a href="POE.html#See-SEE-ALSO">See SEE ALSO</a></li>
      <li><a href="POE.html#Don&#39;t-Forget-the-Web">Don&#39;t Forget the Web</a></li>
    </ul>
  </li>
  <li><a href="POE.html#SYSTEM-REQUIREMENTS">SYSTEM REQUIREMENTS</a></li>
  <li><a href="POE.html#COMPATIBILITY-ISSUES">COMPATIBILITY ISSUES</a>
    <ul>
      <li><a href="POE.html#Windows-Issues">Windows Issues</a></li>
      <li><a href="POE.html#Linux/Unix-Issues">Linux/Unix Issues</a>
        <ul>
          <li><a href="POE.html#pty-woes">pty woes</a></li>
        </ul>
      </li>
      <li><a href="POE.html#Other-Compatibility-Issues">Other Compatibility Issues</a></li>
    </ul>
  </li>
  <li><a href="POE.html#GETTING-HELP">GETTING HELP</a>
    <ul>
      <li><a href="POE.html#POE&#39;s-Request-Tracker">POE&#39;s Request Tracker</a></li>
      <li><a href="POE.html#POE&#39;s-Mailing-List">POE&#39;s Mailing List</a></li>
      <li><a href="POE.html#POE&#39;s-Web-Site">POE&#39;s Web Site</a></li>
      <li><a href="POE.html#POE&#39;s-Source-Code">POE&#39;s Source Code</a></li>
      <li><a href="POE.html#SourceForge">SourceForge</a></li>
      <li><a href="POE.html#Internet-Relay-Chat-(IRC)">Internet Relay Chat (IRC)</a></li>
      <li><a href="POE.html#Personal-Support">Personal Support</a></li>
    </ul>
  </li>
  <li><a href="POE.html#SEE-ALSO">SEE ALSO</a>
    <ul>
      <li><a href="POE.html#Layer-1">Layer 1</a></li>
      <li><a href="POE.html#Layer-2">Layer 2</a></li>
      <li><a href="POE.html#Layer-3">Layer 3</a></li>
      <li><a href="POE.html#Layer-0">Layer 0</a></li>
      <li><a href="POE.html#Helpers">Helpers</a></li>
      <li><a href="POE.html#Home-Page">Home Page</a></li>
      <li><a href="POE.html#Bug-Tracker">Bug Tracker</a></li>
      <li><a href="POE.html#Repositories-and-Changes">Repositories and Changes</a></li>
      <li><a href="POE.html#Other-Resources">Other Resources</a></li>
    </ul>
  </li>
  <li><a href="POE.html#AUTHORS-&amp;-COPYRIGHT">AUTHORS &amp; COPYRIGHT</a>
    <ul>
      <li><a href="POE.html#Author">Author</a></li>
    </ul>
  </li>
</ul></nav>
<div class="pod anchors">
<h1 id="NAME">NAME</h1>

<p>POE - portable multitasking and networking framework for any event loop</p>

<h1 id="SYNOPSIS">SYNOPSIS</h1>

<pre><code>  #!/usr/bin/perl

  use warnings;
  use strict;

  use POE;  # Auto-includes POE::Kernel and POE::Session.

  sub handler_start {
    my ($kernel, $heap, $session) = @_[KERNEL, HEAP, SESSION];
    print &quot;Session &quot;, $session-&gt;ID, &quot; has started.\n&quot;;
    $heap-&gt;{count} = 0;
    $kernel-&gt;yield(&#39;increment&#39;);
  }

  sub handler_increment {
    my ($kernel, $heap, $session) = @_[KERNEL, HEAP, SESSION];
    print &quot;Session &quot;, $session-&gt;ID, &quot; counted to &quot;, ++$heap-&gt;{count}, &quot;.\n&quot;;
    $kernel-&gt;yield(&#39;increment&#39;) if $heap-&gt;{count} &lt; 10;
  }

  sub handler_stop {
    print &quot;Session &quot;, $_[SESSION]-&gt;ID, &quot; has stopped.\n&quot;;
  }

  for (1..10) {
    POE::Session-&gt;create(
      inline_states =&gt; {
        _start    =&gt; \&amp;handler_start,
        increment =&gt; \&amp;handler_increment,
        _stop     =&gt; \&amp;handler_stop,
      }
    );
  }

  POE::Kernel-&gt;run();
  exit;</code></pre>

<h1 id="DESCRIPTION">DESCRIPTION</h1>

<p>POE is a framework for cooperative, event driven multitasking and networking in Perl. Other languages have similar frameworks. Python has Twisted. TCL has &quot;the event loop&quot;.</p>

<p>POE provides a unified interface for several other event loops, including select(), <a href="https://metacpan.org/pod/IO::Poll">IO::Poll</a>, <a href="https://metacpan.org/pod/Glib">Glib</a>, <a href="https://metacpan.org/pod/Gtk">Gtk</a>, <a href="Tk.html">Tk</a>, <a href="https://metacpan.org/pod/Wx">Wx</a>, and <a href="https://metacpan.org/pod/Gtk2">Gtk2</a>. Many of these event loop interfaces were written by others, with the help of POE::Test::Loops. They may be found on the CPAN.</p>

<p>POE achieves its high degree of portability to different operating systems and Perl versions by being written entirely in Perl. CPAN hosts optional XS modules for POE if speed is more desirable than portability.</p>

<p>POE is designed in layers. Each layer builds atop the lower level ones. Programs are free to use POE at any level of abstraction, and different levels can be mixed and matched seamlessly within a single program. Remember, though, that higher-level abstractions often require more resources than lower-level ones. The conveniences they provide are not free.</p>

<p>POE&#39;s bundled abstraction layers are the tip of a growing iceberg. <a href="https://metacpan.org/pod/Sprocket">Sprocket</a>, <a href="https://metacpan.org/pod/POE::Stage">POE::Stage</a>, and other CPAN distributions build upon this work. You&#39;re encouraged to look around.</p>

<p>No matter how high you go, though, it all boils down to calls to <a href="https://metacpan.org/pod/POE::Kernel">POE::Kernel</a>. So your down-to-earth code can easily cooperate with stratospheric systems.</p>

<h2 id="Layer-1:-Kernel-and-Sessions"><a id="Layer"></a>Layer 1: Kernel and Sessions</h2>

<p>The lowest public layer is comprised of <a href="https://metacpan.org/pod/POE::Kernel">POE::Kernel</a>, <a href="https://metacpan.org/pod/POE::Session">POE::Session</a>, and other session types.</p>

<p><a href="https://metacpan.org/pod/POE::Kernel">POE::Kernel</a> does most of the heavy lifting. It provides a portable interface for filehandle activity detection, multiple alarms and other timers, signal handling, and other less-common features.</p>

<p><a href="https://metacpan.org/pod/POE::Session">POE::Session</a> and derived classes encapsulate the notion of an event driven task. They also customize event dispatch to a particular calling convention. <a href="https://metacpan.org/pod/POE::NFA">POE::NFA</a>, for example, is more of a proper state machine. The CPAN has several other kinds of sessions.</p>

<p>Everything ultimately builds on these classes or the concepts they implement. If you&#39;re short on time, the things to read besides this are <a href="https://metacpan.org/pod/POE::Kernel">POE::Kernel</a> and <a href="https://metacpan.org/pod/POE::Session">POE::Session</a>.</p>

<h2 id="Layer-2:-Wheels,-Filters,-and-Drivers"><a id="Layer1"></a><a id="Layer-2:-Wheels--Filters--and-Drivers"></a>Layer 2: Wheels, Filters, and Drivers</h2>

<p>POE::Wheel objects are dynamic mix-ins for POE::Session instances. These &quot;wheels&quot; perform very common, generic tasks in a highly reusable and customizable way. <a href="https://metacpan.org/pod/POE::Wheel::ReadWrite">POE::Wheel::ReadWrite</a>, for example, implements non-blocking buffered I/O. Nearly everybody needs this, so why require people to reinvent it all the time?</p>

<p><a href="https://metacpan.org/pod/POE::Filter">POE::Filter</a> objects customize wheels in a modular way. Filters act as I/O layers, turning raw streams into structured data, and serializing structures into something suitable for streams. The CPAN also has several of these.</p>

<p>Drivers are where the wheels meet the road. In this case, the road is some type of file handle. Drivers do the actual reading and writing in a standard way so wheels don&#39;t need to know the difference between send() and syswrite().</p>

<p><a href="https://metacpan.org/pod/POE::Driver">POE::Driver</a> objects get relatively short shrift because very few are needed. The most common driver, <a href="https://metacpan.org/pod/POE::Driver::SysRW">POE::Driver::SysRW</a> is ubiquitous and also the default, so most people will never need to specify one.</p>

<h2 id="Layer-3:-Components"><a id="Layer2"></a>Layer 3: Components</h2>

<p><a href="https://metacpan.org/pod/POE::Component">POE::Component</a> classes are essentially Perl classes that use POE to perform tasks in a non-blocking or cooperative way. This is a very broad definition, and POE components are all over the abstraction map.</p>

<p>Many components, such as <a href="https://metacpan.org/pod/POE::Component::Server::SMTP">POE::Component::Server::SMTP</a>, encapsulate the generic details of an entire application. Others perform rather narrow tasks, such as <a href="https://metacpan.org/pod/POE::Component::DirWatch::Object">POE::Component::DirWatch::Object</a>.</p>

<p>POE components are often just plain Perl objects. The previously mentioned <a href="https://metacpan.org/pod/POE::Component::DirWatch::Object">POE::Component::DirWatch::Object</a> uses <a href="Moose.html">Moose</a>. Other object and meta-object frameworks are compatible.</p>

<p>Also of interest is <a href="https://metacpan.org/pod/POE::Component::Generic">POE::Component::Generic</a>, which allows you to create a POE component from nearly any blocking module.</p>

<p>There are quite a lot of components on the CPAN. <a href="http://search.cpan.org/search?query=poe+component&amp;mode=all">http://search.cpan.org/search?query=poe+component&amp;mode=all</a></p>

<h2 id="Layer-4-and-Beyond:-Frameworks-and-Object-Metaphors"><a id="Layer3"></a>Layer 4 and Beyond: Frameworks and Object Metaphors</h2>

<p>It&#39;s possible to abstract POE entirely behind a different framework. In fact we encourage people to write domain-specific abstractions that entirely hide POE if necessary. The nice thing here is that even at these high levels of abstraction, things will continue to interoperate all the way down to layer 1.</p>

<p>Two examples of ultra-high level abstraction are <a href="https://metacpan.org/pod/Sprocket">Sprocket</a>, a networking framework that does its own thing, and <a href="https://metacpan.org/pod/POE::Stage">POE::Stage</a>, which is POE&#39;s creator&#39;s attempt to formalize and standardize POE components.</p>

<p>It is also possible to communicate between POE processes. This is called IKC, for <i>Inter-Kernel Communication</i>. There are a few IKC components on the CPAN (<a href="http://search.cpan.org/search?query=IKC&amp;mode=all">http://search.cpan.org/search?query=IKC&amp;mode=all</a>), notably <a href="https://metacpan.org/pod/POE::Component::IKC">POE::Component::IKC</a> and <a href="https://metacpan.org/pod/POE::TIKC">POE::TIKC</a>.</p>

<h2 id="Layer-0:-POE&#39;s-Internals"><a id="Layer4"></a><a id="Layer-0:-POE-s-Internals"></a>Layer 0: POE&#39;s Internals</h2>

<p>POE&#39;s layered architecture continues below the surface. POE&#39;s guts are broken into specific <a href="https://metacpan.org/pod/POE::Loop">POE::Loop</a> classes for each event loop it supports. Internals are divided up by type, giving <a href="https://metacpan.org/pod/POE::Resource">POE::Resource</a> classes for Aliases, Controls, Events, Extrefs, FileHandles, SIDs, Sessions and Signals.</p>

<p>POE::Kernel&#39;s APIs are extensible through POE::API mix-in classes. Some brave souls have even published new APIs on CPAN, such as <a href="https://metacpan.org/pod/POE::API::Peek">POE::API::Peek</a> (which gives you access to some of the internal <a href="https://metacpan.org/pod/POE::Resource">POE::Resource</a> methods).</p>

<p>By design, it&#39;s possible to implement new <a href="https://metacpan.org/pod/POE::Kernel">POE::Kernel</a> guts by creating another <a href="https://metacpan.org/pod/POE::Resource">POE::Resource</a> class. One can then expose the functionality with a new POE::API mix-in.</p>

<h1 id="DOCUMENTATION-ROADMAP"><a id="DOCUMENTATION"></a>DOCUMENTATION ROADMAP</h1>

<p>You&#39;re reading the main POE documentation. It&#39;s the general entry point to the world of POE. You already know this, however, so let&#39;s talk about something more interesting.</p>

<h2 id="Basic-Features"><a id="Basic"></a>Basic Features</h2>

<p>POE&#39;s basic features are documented mainly in <a href="https://metacpan.org/pod/POE::Kernel">POE::Kernel</a> and <a href="https://metacpan.org/pod/POE::Session">POE::Session</a>. Methods are documented in the classes that implement them. Broader concepts are covered in the most appropriate class, and sometimes they are divided among classes that share in their implementation.</p>

<h2 id="Basic-Usage"><a id="Basic1"></a>Basic Usage</h2>

<p>Basic usage, even for POE.pm, is documented in <a href="https://metacpan.org/pod/POE::Kernel">POE::Kernel</a>. That&#39;s where most of POE&#39;s work is done, and POE.pm is little more than a class loader.</p>

<h2 id="@_[KERNEL,-HEAP,-etc.]"><a id="KERNEL--HEAP--etc"></a>@_[KERNEL, HEAP, etc.]</h2>

<p>Event handler calling conventions, that weird <code>@_[KERNEL, HEAP]</code> stuff, is documented in <a href="https://metacpan.org/pod/POE::Session">POE::Session</a>. That&#39;s because POE::Session implements the calling convention, and other session types often do it differently.</p>

<h2 id="Base-Classes-Document-Common-Features"><a id="Base"></a>Base Classes Document Common Features</h2>

<p>The <a href="https://metacpan.org/pod/POE::Wheel">POE::Wheel</a>, <a href="https://metacpan.org/pod/POE::Driver">POE::Driver</a>, <a href="https://metacpan.org/pod/POE::Filter">POE::Filter</a>, and <a href="https://metacpan.org/pod/POE::Component">POE::Component</a> base classes describe what&#39;s common among each class. It&#39;s a good idea to at least skim the base class documentation since the subclasses tend not to rehash the common things.</p>

<p><a href="https://metacpan.org/pod/POE::Queue">POE::Queue</a>, <a href="https://metacpan.org/pod/POE::Resource">POE::Resource</a>, and <a href="https://metacpan.org/pod/POE::Loop">POE::Loop</a> document the concepts and sometimes the standard interfaces behind multiple subclasses. You&#39;re encouraged to have a look.</p>

<h2 id="Helper-Classes"><a id="Helper"></a>Helper Classes</h2>

<p>POE includes some helper classes for portability. <a href="https://metacpan.org/pod/POE::Pipe">POE::Pipe</a>, and its subclasses <a href="https://metacpan.org/pod/POE::Pipe::OneWay">POE::Pipe::OneWay</a> and <a href="https://metacpan.org/pod/POE::Pipe::TwoWay">POE::Pipe::TwoWay</a> are portable pipes.</p>

<h2 id="Event-Loop-Bridges"><a id="Event"></a>Event Loop Bridges</h2>

<p><a href="https://metacpan.org/pod/POE::Loop">POE::Loop</a> documents and specifies the interface for all of POE&#39;s event loop bridges. The individual classes may document specific details, but generally they adhere to the spec strongly enough that they don&#39;t need to.</p>

<p>Many of the existing <a href="https://metacpan.org/pod/POE::Loop">POE::Loop</a> bridges provided in POE&#39;s base distribution will move out to separate distributions shortly. The documentation will probably remain the same, however.</p>

<h2 id="POE::Queue-and-POE::Queue::Array"><a id="POE"></a>POE::Queue and POE::Queue::Array</h2>

<p>POE&#39;s event queue is basically a priority heap implemented as an ordered array. <a href="https://metacpan.org/pod/POE::Queue">POE::Queue</a> documents the standard interface for POE event queues, and <a href="https://metacpan.org/pod/POE::Queue::Array">POE::Queue::Array</a> implements the ordered array queue. Tony Cook has released <a href="https://metacpan.org/pod/POE::XS::Queue::Array">POE::XS::Queue::Array</a>, which is a drop-in C replacement for <a href="https://metacpan.org/pod/POE::Queue::Array">POE::Queue::Array</a>. You might give it a try if you need more performance. POE&#39;s event queue is some of the hottest code in the system.</p>

<h2 id="This-Section-Isn&#39;t-Complete"><a id="This"></a><a id="This-Section-Isn-t-Complete"></a>This Section Isn&#39;t Complete</h2>

<p>Help organize the documentation. Obviously we can&#39;t think of everything. We&#39;re well aware of this and welcome audience participation.</p>

<h2 id="See-SEE-ALSO"><a id="See"></a>See SEE ALSO</h2>

<p>Wherever possible, the SEE ALSO section will cross-reference one module to related ones.</p>

<h2 id="Don&#39;t-Forget-the-Web"><a id="Don"></a><a id="Don-t-Forget-the-Web"></a>Don&#39;t Forget the Web</h2>

<p>Finally, there are many POE resources on the web. The CPAN contains a growing number of POE modules. <a href="http://poe.perl.org/">http://poe.perl.org/</a> hosts POE&#39;s wiki, which includes tutorials, an extensive set of examples, documentation, and more. Plus it&#39;s a wiki, so you can trivially pitch in your two cents.</p>

<h1 id="SYSTEM-REQUIREMENTS"><a id="SYSTEM"></a>SYSTEM REQUIREMENTS</h1>

<p>POE&#39;s basic requirements are rather light. Most are included with modern versions of Perl, and the rest (if any) should be generally portable by now.</p>

<p><a href="https://metacpan.org/pod/Time::HiRes">Time::HiRes</a> is highly recommended, even for older Perls that don&#39;t include it. POE will work without it, but alarms and other features will be much more accurate if it&#39;s included. <a href="https://metacpan.org/pod/POE::Kernel">POE::Kernel</a> will use Time::HiRes automatically if it&#39;s available.</p>

<p><a href="https://metacpan.org/pod/POE::Filter::Reference">POE::Filter::Reference</a> needs a module to serialize data for transporting it across a network. It will use <a href="https://metacpan.org/pod/Storable">Storable</a>, <a href="FreezeThaw.html">FreezeThaw</a>, <a href="YAML.html">YAML</a>, or some other package with freeze() and thaw() methods. It can also use <a href="https://metacpan.org/pod/Compress::Zlib">Compress::Zlib</a> to conserve bandwidth and reduce latency over slow links, but it&#39;s not required.</p>

<p>If you want to write web servers, you&#39;ll need to install libwww-perl, which requires libnet. This is a small world of modules that includes <a href="https://metacpan.org/pod/HTTP::Status">HTTP::Status</a>, <a href="./HTTP::Request.html">HTTP::Request</a>, <a href="https://metacpan.org/pod/HTTP::Date">HTTP::Date</a>, and <a href="./HTTP::Response.html">HTTP::Response</a>. They are generally good to have, and modern versions of Perl even include them.</p>

<p>Programs that use <a href="https://metacpan.org/pod/POE::Wheel::Curses">POE::Wheel::Curses</a> will of course require the <a href="https://metacpan.org/pod/Curses">Curses</a> module, which in turn requires some sort of curses library.</p>

<p>If you&#39;re using POE with Tk, you&#39;ll need <a href="Tk.html">Tk</a> installed.</p>

<p>And other obvious things. Let us know if we&#39;ve overlooked a non-obvious detail.</p>

<h1 id="COMPATIBILITY-ISSUES"><a id="COMPATIBILITY"></a>COMPATIBILITY ISSUES</h1>

<p>One of POE&#39;s design goals is to be as portable as possible. That&#39;s why it&#39;s written in &quot;Plain Perl&quot;. XS versions of POE modules are available as third-party distributions. Parts of POE that require nonstandard libraries are optional, and not having those libraries should not prevent POE from installing.</p>

<p>Despite Chris Williams&#39; efforts, we can&#39;t test POE everywhere. Please see the GETTING HELP section if you run into a problem.</p>

<p>POE is expected to work on most forms of UNIX, including FreeBSD, MacOS X, Linux, Solaris. Maybe even AIX and QNX, but we&#39;re not sure.</p>

<p>POE is also tested on Windows XP, using the latest version of ActiveState, Strawberry and Cygwin Perl. POE is fully supported with Strawberry Perl, as it&#39;s included in the Strawberry distribution.</p>

<p>OS/2 and MacOS 9 have been reported to work in the past, but nobody seems to be testing there anymore. Reports and patches are still welcome.</p>

<p>Past versions of POE have been tested with Perl versions as far back as 5.6.2 and as recent as &quot;blead&quot;, today&#39;s development build. We can no longer guarantee each release will work everywhere, but we will be happy to work with you if you need special support for a really old system. You can always use older POE releases that works on your version, please check <a href="http://backpan.perl.org/authors/id/R/RC/RCAPUTO/">BackPAN</a>.</p>

<p>POE&#39;s quality is due in large part to the fine work of Chris Williams and the other CPAN testers. They have dedicated resources towards ensuring CPAN distributions pass their own tests, and we watch their reports religiously. You can, too. The latest POE test reports can be found at <a href="http://cpantesters.org/distro/P/POE.html">http://cpantesters.org/distro/P/POE.html</a>.</p>

<p>Thanks also go out to Benjamin Smith and the 2006 Google Summer of Code. Ben was awarded a grant to improve POE&#39;s test suite, which he did admirably.</p>

<h2 id="Windows-Issues"><a id="Windows"></a>Windows Issues</h2>

<p>POE seems to work very nicely with Perl compiled for Cygwin. If you must use ActiveState Perl, please use the absolute latest version. ActiveState Perl&#39;s compatibility fluctuates from one build to another, so we tend not to support older releases.</p>

<p>Windows and ActiveState Perl are considered an esoteric platform due to the complex interactions between various versions. POE therefore relies on user feedback and support here.</p>

<p>A number of people have helped bring POE&#39;s Windows support this far, through contributions of time, patches, and other resources. Some of them are: Sean Puckett, Douglas Couch, Andrew Chen, Uhlarik Ondoej, Nick Williams, and Chris Williams (no relation).</p>

<h2 id="Linux/Unix-Issues"><a id="Linux"></a><a id="Linux-Unix-Issues"></a>Linux/Unix Issues</h2>

<h3 id="pty-woes"><a id="pty"></a>pty woes</h3>

<p>Some distributions chose to not completely setup the pseudo-tty support. This is needed for <a href="https://metacpan.org/pod/POE::Wheel::Run">POE::Wheel::Run</a> to interact with the subprocess. If you see something like this while running <code>make test</code> please look at your distribution&#39;s documentation on how to fix it. For example, on Debian-based systems the solution was to execute &quot;sudo apt-get install udev&quot;.</p>

<pre><code>  t/30_loops/io_poll/wheel_run.t ..................... 1/99
  pty_allocate(nonfatal): posix_openpt(): No such file or directory at /usr/local/lib/perl/5.10.0/IO/Pty.pm line 24.
  ...
  Cannot open a pty at /home/apoc/poe/blib/lib/POE/Wheel/Run.pm line 251
  Compilation failed in require at t/30_loops/io_poll/wheel_run.t line 24.
  # Looks like you planned 99 tests but ran 5.
  # Looks like your test exited with 22 just after 5.
  t/30_loops/io_poll/wheel_run.t ..................... Dubious, test returned 22 (wstat 5632, 0x1600)</code></pre>

<h2 id="Other-Compatibility-Issues"><a id="Other"></a>Other Compatibility Issues</h2>

<p>None currently known. See GETTING HELP below if you&#39;ve run into something.</p>

<h1 id="GETTING-HELP"><a id="GETTING"></a>GETTING HELP</h1>

<p>POE&#39;s developers take pride in its quality. If you encounter a problem, please let us know.</p>

<h2 id="POE&#39;s-Request-Tracker"><a id="POE1"></a><a id="POE-s-Request-Tracker"></a>POE&#39;s Request Tracker</h2>

<p>You&#39;re welcome to e-mail questions and bug reports to &lt;bug-POE@rt.cpan.org&gt;. This is not a realtime support channel, though. If you need a more immediate response, try one of the methods below.</p>

<h2 id="POE&#39;s-Mailing-List"><a id="POE2"></a><a id="POE-s-Mailing-List"></a>POE&#39;s Mailing List</h2>

<p>POE has a dedicated mailing list where developers and users discuss the software and its use. You&#39;re welcome to join us. Send an e-mail to &lt;poe-help@perl.org&gt; for subscription instructions. The subject and message body are ignored.</p>

<h2 id="POE&#39;s-Web-Site"><a id="POE3"></a><a id="POE-s-Web-Site"></a>POE&#39;s Web Site</h2>

<p>&lt;http://poe.perl.org&gt; contains recent information, tutorials, and examples. It&#39;s also a wiki, so people are invited to share tips and code snippets there as well.</p>

<h2 id="POE&#39;s-Source-Code"><a id="POE4"></a><a id="POE-s-Source-Code"></a>POE&#39;s Source Code</h2>

<p>The following command will fetch the most current version of POE into the &quot;poe&quot; subdirectory:</p>

<pre><code>  git clone https://github.com/rcaputo/poe.git</code></pre>

<h2 id="SourceForge">SourceForge</h2>

<p>http://sourceforge.net/projects/poe/ is POE&#39;s project page.</p>

<h2 id="Internet-Relay-Chat-(IRC)"><a id="Internet"></a><a id="Internet-Relay-Chat--IRC"></a>Internet Relay Chat (IRC)</h2>

<p>irc.perl.org channel #poe is an informal place to waste some time and maybe even discuss Perl and POE. Consider an SSH relay if your workplace frowns on IRC. But only if they won&#39;t fire you if you&#39;re caught.</p>

<h2 id="Personal-Support"><a id="Personal"></a>Personal Support</h2>

<p>Unfortunately we don&#39;t have resources to provide free one-on-one personal support anymore. We&#39;ll do it for a fee, though. Send Rocco an e-mail via his CPAN address.</p>

<h1 id="SEE-ALSO"><a id="SEE"></a>SEE ALSO</h1>

<p>Broken down by abstraction layer.</p>

<h2 id="Layer-1"><a id="Layer5"></a>Layer 1</h2>

<p><a href="https://metacpan.org/pod/POE::Kernel">POE::Kernel</a>, <a href="https://metacpan.org/pod/POE::Session">POE::Session</a>, <a href="https://metacpan.org/pod/POE::NFA">POE::NFA</a></p>

<h2 id="Layer-2"><a id="Layer6"></a>Layer 2</h2>

<p><a href="https://metacpan.org/pod/POE::Wheel">POE::Wheel</a>, <a href="https://metacpan.org/pod/POE::Wheel::Curses">POE::Wheel::Curses</a>, <a href="https://metacpan.org/pod/POE::Wheel::FollowTail">POE::Wheel::FollowTail</a>, <a href="https://metacpan.org/pod/POE::Wheel::ListenAccept">POE::Wheel::ListenAccept</a>, <a href="https://metacpan.org/pod/POE::Wheel::ReadLine">POE::Wheel::ReadLine</a>, <a href="https://metacpan.org/pod/POE::Wheel::ReadWrite">POE::Wheel::ReadWrite</a>, <a href="https://metacpan.org/pod/POE::Wheel::Run">POE::Wheel::Run</a>, <a href="https://metacpan.org/pod/POE::Wheel::SocketFactory">POE::Wheel::SocketFactory</a></p>

<p><a href="https://metacpan.org/pod/POE::Driver">POE::Driver</a>, <a href="https://metacpan.org/pod/POE::Driver::SysRW">POE::Driver::SysRW</a></p>

<p><a href="https://metacpan.org/pod/POE::Filter">POE::Filter</a>, <a href="https://metacpan.org/pod/POE::Filter::Block">POE::Filter::Block</a>, <a href="https://metacpan.org/pod/POE::Filter::Grep">POE::Filter::Grep</a>, <a href="https://metacpan.org/pod/POE::Filter::HTTPD">POE::Filter::HTTPD</a>, <a href="https://metacpan.org/pod/POE::Filter::Line">POE::Filter::Line</a>, <a href="https://metacpan.org/pod/POE::Filter::Map">POE::Filter::Map</a>, <a href="https://metacpan.org/pod/POE::Filter::RecordBlock">POE::Filter::RecordBlock</a>, <a href="https://metacpan.org/pod/POE::Filter::Reference">POE::Filter::Reference</a>, <a href="https://metacpan.org/pod/POE::Filter::Stackable">POE::Filter::Stackable</a>, <a href="https://metacpan.org/pod/POE::Filter::Stream">POE::Filter::Stream</a></p>

<h2 id="Layer-3"><a id="Layer7"></a>Layer 3</h2>

<p><a href="https://metacpan.org/pod/POE::Component">POE::Component</a>, <a href="https://metacpan.org/pod/POE::Component::Client::TCP">POE::Component::Client::TCP</a>, <a href="https://metacpan.org/pod/POE::Component::Server::TCP">POE::Component::Server::TCP</a></p>

<h2 id="Layer-0"><a id="Layer8"></a>Layer 0</h2>

<p><a href="https://metacpan.org/pod/POE::Loop">POE::Loop</a>, <a href="https://metacpan.org/pod/POE::Loop::Event">POE::Loop::Event</a>, <a href="https://metacpan.org/pod/POE::Loop::Gtk">POE::Loop::Gtk</a>, <a href="https://metacpan.org/pod/POE::Loop::IO_Poll">POE::Loop::IO_Poll</a>, <a href="https://metacpan.org/pod/POE::Loop::Select">POE::Loop::Select</a>, <a href="https://metacpan.org/pod/POE::Loop::Tk">POE::Loop::Tk</a></p>

<p><a href="https://metacpan.org/pod/POE::Queue">POE::Queue</a>, <a href="https://metacpan.org/pod/POE::Queue::Array">POE::Queue::Array</a></p>

<p><a href="https://metacpan.org/pod/POE::Resource">POE::Resource</a>, <a href="https://metacpan.org/pod/POE::Resource::Aliases">POE::Resource::Aliases</a>, <a href="https://metacpan.org/pod/POE::Resource::Events">POE::Resource::Events</a>, <a href="https://metacpan.org/pod/POE::Resource::Extrefs">POE::Resource::Extrefs</a>, <a href="https://metacpan.org/pod/POE::Resource::FileHandles">POE::Resource::FileHandles</a>, <a href="https://metacpan.org/pod/POE::Resource::SIDs">POE::Resource::SIDs</a>, <a href="https://metacpan.org/pod/POE::Resource::Sessions">POE::Resource::Sessions</a>, <a href="https://metacpan.org/pod/POE::Resource::Signals">POE::Resource::Signals</a></p>

<h2 id="Helpers">Helpers</h2>

<p><a href="https://metacpan.org/pod/POE::Pipe">POE::Pipe</a>, <a href="https://metacpan.org/pod/POE::Pipe::OneWay">POE::Pipe::OneWay</a>, <a href="https://metacpan.org/pod/POE::Pipe::TwoWay">POE::Pipe::TwoWay</a></p>

<h2 id="Home-Page"><a id="Home"></a>Home Page</h2>

<p>http://poe.perl.org/</p>

<h2 id="Bug-Tracker"><a id="Bug"></a>Bug Tracker</h2>

<p>https://rt.cpan.org/Dist/Display.html?Status=Active&amp;Queue=POE</p>

<h2 id="Repositories-and-Changes"><a id="Repositories"></a>Repositories and Changes</h2>

<p>You can browse the POE source and complete change logs at https://github.com/rcaputo/poe. It also provides an RSS news feed for those who want to follow development in near-realtime.</p>

<h2 id="Other-Resources"><a id="Other1"></a>Other Resources</h2>

<p>https://metacpan.org/module/POE</p>

<p>http://search.cpan.org/dist/POE</p>

<h1 id="AUTHORS-&amp;-COPYRIGHT"><a id="AUTHORS"></a><a id="AUTHORS---COPYRIGHT"></a>AUTHORS &amp; COPYRIGHT</h1>

<p>POE is the combined effort of quite a lot of people. This is an incomplete list of some early contributors. A more complete list can be found in POE&#39;s change log.</p>

<dl>

<dt id="Ann-Barcomb"><a id="Ann"></a>Ann Barcomb</dt>
<dd>

<p>Ann Barcomb is &lt;kudra@domaintje.com&gt;, aka <code>kudra</code>. Ann contributed large portions of POE::Simple and the code that became the ReadWrite support in POE::Component::Server::TCP. Her ideas also inspired Client::TCP component, introduced in version 0.1702.</p>

</dd>
<dt id="Artur-Bergman"><a id="Artur"></a>Artur Bergman</dt>
<dd>

<p>Artur Bergman is &lt;sky@cpan.org&gt;. He contributed many hours&#39; work into POE and quite a lot of ideas. Years later, I decide he&#39;s right and actually implement them.</p>

<p>Artur is the author of Filter::HTTPD and Filter::Reference, as well as bits and pieces throughout POE. His feedback, testing, design and inspiration have been instrumental in making POE what it is today.</p>

<p>Artur is investing his time heavily into perl 5&#39;s iThreads and PONIE at the moment. This project has far-reaching implications for POE&#39;s future.</p>

</dd>
<dt id="Jos-Boumans"><a id="Jos"></a>Jos Boumans</dt>
<dd>

<p>Jos Boumans is &lt;kane@cpan.org&gt;, aka <code>kane</code>. Jos is a major driving force behind the POE::Simple movement and has helped inspire the POE::Components for TCP clients and servers.</p>

</dd>
<dt id="Matt-Cashner"><a id="Matt"></a>Matt Cashner</dt>
<dd>

<p>Matt Cashner is &lt;sungo@pobox.com&gt;, aka <code>sungo</code>. Matt is one of POE&#39;s core developers. He&#39;s spearheaded the movement to simplify POE for new users, flattening the learning curve and making the system more accessible to everyone. He uses the system in mission critical applications, folding feedback and features back into the distribution for everyone&#39;s enjoyment.</p>

</dd>
<dt id="Andrew-Chen"><a id="Andrew"></a>Andrew Chen</dt>
<dd>

<p>Andrew Chen is &lt;achen-poe@micropixel.com&gt;. Andrew is the resident POE/Windows guru. He contributes much needed testing for Solaris on the SPARC and Windows on various Intel platforms.</p>

</dd>
<dt id="Douglas-Couch"><a id="Douglas"></a>Douglas Couch</dt>
<dd>

<p>Douglas Couch is &lt;dscouch@purdue.edu&gt;. Douglas helped port and maintain POE for Windows early on.</p>

</dd>
<dt id="Jeffrey-Goff"><a id="Jeffrey"></a>Jeffrey Goff</dt>
<dd>

<p>Jeffrey Goff is &lt;jgoff@blackboard.com&gt;. Jeffrey is the author of several POE modules, including a tokenizing filter and a component for managing user information, PoCo::UserBase. He&#39;s also co-author of &quot;A Beginner&#39;s Introduction to POE&quot; at www.perl.com.</p>

</dd>
<dt id="Philip-Gwyn"><a id="Philip"></a>Philip Gwyn</dt>
<dd>

<p>Philip Gwyn is &lt;gwynp@artware.qc.ca&gt;. He extended the Wheels I/O abstraction to support hot-swappable filters, and he eventually convinced Rocco that unique session and kernel IDs were a good thing.</p>

<p>Philip also enhanced <a href="https://metacpan.org/pod/POE::Filter::Reference">POE::Filter::Reference</a> to support different serialization methods. He has also improved POE&#39;s quality by finding and fixing several bugs. He provided POE a much needed code review around version 0.06.</p>

<p>Lately, Philip tracked down the race condition in signal handling and fixed it with the signal pipe.</p>

</dd>
<dt id="Arnar-M.-Hrafnkelsson"><a id="Arnar"></a>Arnar M. Hrafnkelsson</dt>
<dd>

<p>Arnar is &lt;addi@umich.edu&gt;. Addi tested POE and <a href="https://metacpan.org/pod/POE::Component::IRC">POE::Component::IRC</a> on Windows, finding bugs and testing fixes. He appears throughout the Changes file. He has also written &quot;cpoe&quot;, which is a POE-like library for C.</p>

</dd>
<dt id="Dave-Paris"><a id="Dave"></a>Dave Paris</dt>
<dd>

<p>Dave Paris is &lt;dparis@w3works.com&gt;. Dave tested and benchmarked POE around version 0.05, discovering some subtle (and not so subtle) timing problems. The pre-forking server sample was his idea. Versions 0.06 and later scaled to higher loads because of his work. He has contributed a lot of testing and feedback, much of which is tagged in the Changes file as a-mused. The man is scarily good at testing and troubleshooting.</p>

</dd>
<dt id="Dieter-Pearcey"><a id="Dieter"></a>Dieter Pearcey</dt>
<dd>

<p>Dieter Pearcey is &lt;dieter@bullfrog.perlhacker.org&gt;. He goes by several Japanese nicknames. Dieter&#39;s current area of expertise is in Wheels and Filters. He greatly improved <a href="https://metacpan.org/pod/POE::Wheel::FollowTail">POE::Wheel::FollowTail</a>, and his Filter contributions include the basic Block filter, as well as Stackable, RecordBlock, Grep and Map.</p>

</dd>
<dt id="Plixer-International"><a id="Plixer"></a>Plixer International</dt>
<dd>

<p>Plixer International is at <a href="http://plixer.com/">http://plixer.com/</a>. Their sponsorship has helped POE 1.300 and beyond be significantly more robust using iThreads, especially when using fork() in Windows.</p>

</dd>
<dt id="Robert-Seifer"><a id="Robert"></a>Robert Seifer</dt>
<dd>

<p>Robert Seifer is &lt;e-mail unknown&gt;. He rotates IRC nicknames regularly.</p>

<p>Robert contributed entirely too much time, both his own and his computers, towards the detection and eradication of a memory corruption bug that POE tickled in earlier Perl versions. In the end, his work produced a simple compile-time hack that worked around a problem relating to anonymous subs, scope and @{} processing.</p>

</dd>
<dt id="Matt-Sergeant"><a id="Matt1"></a>Matt Sergeant</dt>
<dd>

<p>Matt contributed <code>POE::Kernel::Poll</code>, a more efficient way to watch multiple files than select(). It&#39;s since been moved to <a href="https://metacpan.org/pod/POE::Loop::IO_Poll">POE::Loop::IO_Poll</a>.</p>

</dd>
<dt id="Richard-Soderberg"><a id="Richard"></a>Richard Soderberg</dt>
<dd>

<p>Richard Soderberg is &lt;poe@crystalflame.net&gt;, aka <code>coral</code>. Richard is a collaborator on several side projects involving POE. His work provides valuable testing and feedback from a user&#39;s point of view.</p>

</dd>
<dt id="Dennis-Taylor"><a id="Dennis"></a>Dennis Taylor</dt>
<dd>

<p>Dennis Taylor is &lt;dennis@funkplanet.com&gt;. Dennis has been testing, debugging and patching bits here and there, such as Filter::Line which he improved by leaps in 0.1102. He&#39;s also the author of <a href="https://metacpan.org/pod/POE::Component::IRC">POE::Component::IRC</a>, the widely popular POE-based successor to his wildly popular <a href="https://metacpan.org/pod/Net::IRC">Net::IRC</a> library.</p>

</dd>
<dt id="David-Davis"><a id="David"></a>David Davis</dt>
<dd>

<p>David Davis, aka Xantus is &lt;xantus@cpan.org&gt;. David contributed patches to the HTTPD filter, and added CALLER_STATE to <a href="https://metacpan.org/pod/POE::Session">POE::Session</a>. He is the author of <a href="https://metacpan.org/pod/Sprocket">Sprocket</a>, a networking framework built on POE.</p>

</dd>
<dt id="Others?"><a id="Others"></a>Others?</dt>
<dd>

<p>Please contact the author if you&#39;ve been forgotten and would like to be included here.</p>

</dd>
</dl>

<h2 id="Author">Author</h2>

<dl>

<dt id="Rocco-Caputo"><a id="Rocco"></a>Rocco Caputo</dt>
<dd>

<p>Rocco Caputo is &lt;rcaputo@cpan.org&gt;. POE is his brainchild. He wishes to thank you for your interest, and he has more thanks than he can count for all the people who have contributed. POE would not be nearly as cool without you.</p>

<p>Except where otherwise noted, POE is Copyright 1998-2013 Rocco Caputo. All rights reserved. POE is free software; you may redistribute it and/or modify it under the same terms as Perl itself.</p>

</dd>
</dl>

<p>Thank you for reading!</p></div>

<div id="metacpan_install-instructions-dialog" class="modal fade">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h4 class="modal-title">Module Install Instructions</h4>
      </div>
      <div class="modal-body">
        <p>To install POE, copy and paste the appropriate command in to your terminal.</p>
        <p><a href="https://metacpan.org/dist/App-cpanminus/view/bin/cpanm">cpanm</a></p>
        <pre><code>cpanm POE</code></pre>
        <p><a href="https://metacpan.org/pod/CPAN">CPAN shell</a></p>
        <pre><code>perl -MCPAN -e shell
install POE</code></pre>
        <p>For more information on module installation, please visit <a href="https://www.cpan.org/modules/INSTALL.html">the detailed CPAN module installation guide</a>.</p>
      </div>
      <div class="modal-footer">
        <a href="POE.html#" data-dismiss="modal" class="btn">Close</a>
      </div>
    </div>
  </div>
</div>
          </main>
          <div class="content-pagination">
          </div>
        </div>
        <footer class="footer">
          <div class="footer-container">
            <div class="footer-social">
              <div class="footer-link footer-logo">
                <a href="https://metacpan.org/">
                  <img src="https://metacpan.org/static/images/metacpan-logo.svg" alt="MetaCPAN" />
                </a>
              </div>
              <a class="footer-social-link" href="https://github.com/metacpan">
                <i class="fab fa-github-square"></i>
              </a>
              <a class="footer-social-link" href="https://fosstodon.org/@metacpan">
                <i class="fab fa-mastodon"></i>
              </a>
            </div>
            <div class="footer-links">
              <div class="footer-link">
                  <a href="https://metacpan.org/about">About</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/about/sponsors">Sponsor</a>
              </div>
              <div class="footer-link">
                  <a href="https://grep.metacpan.org">grep::cpan</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/recent">Recent</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/about/faq">FAQ</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/tools">Tools</a>
              </div>
              <div class="footer-link">
                  <a href="https://fastapi.metacpan.org/">API</a>
              </div>
              <div class="footer-link">
                  <a href="https://www.perl.org/">Perl.org</a>
              </div>
            </div>
            <div class="footer-sponsors">
              <a class="footer-sponsor-link" target="_blank" href="https://www.bytemark.co.uk/" rel="noopener">
                <img class="footer-sponsor-bytemark" src="https://metacpan.org/static/images/sponsors/bytemark_logo.svg" alt="Bytemark logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://www.liquidweb.com/" rel="noopener">
                <img class="footer-sponsor-liquidweb" src="https://metacpan.org/static/images/sponsors/liquidweb_logo.png" alt="liquidweb logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://deriv.com/careers/" rel="noopener">
                <img class="footer-sponsor-deriv" src="https://metacpan.org/static/images/sponsors/deriv.svg" alt="Deriv logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://geocode.xyz" rel="noopener">
                <img class="footer-sponsor-geocode" src="https://metacpan.org/static/images/sponsors/geocodelogo.svg" alt="Geocode logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://www.fastly.com/" rel="noopener">
                <img class="footer-sponsor-fastly" src="https://metacpan.org/static/images/sponsors/fastly_logo.svg" alt="Fastly logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://opencagedata.com" rel="noopener">
                <img class="footer-sponsor-opencage" src="https://metacpan.org/static/images/sponsors/open-cage.svg" alt="OpenCage logo">
              </a>
            </div>
          </div>
        </footer>
        <div class="modal fade" tabindex="-1" role="dialog" id="metacpan_keyboard-shortcuts">
          <div class="modal-dialog">
            <div class="modal-content">
              <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 class="modal-title">Keyboard Shortcuts</h4>
              </div>
              <div class="modal-body row">
<div class="col-md-6">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>Global</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>s</kbd>
        </td>
        <td>Focus search bar</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>?</kbd>
        </td>
        <td>Bring up this help dialog</td>
      </tr>
    </tbody>
  </table>

  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>GitHub</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>p</kbd>
        </td>
        <td>Go to pull requests</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>i</kbd>
        </td>
        <td>go to github issues (only if github is preferred repository)</td>
      </tr>
    </tbody>
  </table>
</div>

<div class="col-md-6">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>POD</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>a</kbd>
        </td>
        <td>Go to author</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>c</kbd>
        </td>
        <td>Go to changes</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>i</kbd>
        </td>
        <td>Go to issues</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>d</kbd>
        </td>
        <td>Go to dist</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>r</kbd>
        </td>
        <td>Go to repository/SCM</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>s</kbd>
        </td>
        <td>Go to source</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>b</kbd>
        </td>
        <td>Go to file browse</td>
      </tr>

    </tbody>
  </table>
</div>

<div class="col-md-12">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>Search terms</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><em>module:</em> (e.g. <a href="https://metacpan.org/search?q=module%3APlugin">module:Plugin</a>)</td>
      </tr>
      <tr>
        <td><em>distribution:</em> (e.g. <a href="https://metacpan.org/search?q=distribution%3ADancer+auth">distribution:Dancer auth</a>)</td>
      </tr>
      <tr>
        <td><em>author:</em> (e.g. <a href="https://metacpan.org/search?q=author%3ASONGMU+Redis">author:SONGMU Redis</a>)</td>
      </tr>
      <tr>
        <td><em>version:</em> (e.g. <a href="https://metacpan.org/search?q=version%3A1.00">version:1.00</a>)</td>
      </tr>
    </tbody>
  </table>
</div>
              </div>
              <div class="modal-footer"></div>
            </div>
          </div>
        </div>
    </body>
</html>
